Have y ou는이 두 웹 사이트에 대해 다른 응용 프로그램 풀을 설정하려고 시도 했습니까? 똑똑해 지려고 노력하는 것 같고 두 가상 디렉터리가 실제로 같은 웹 사이트라고 결론을 내립니다.
다른 모든 방법으로 오류가 발생하면 ASP.NET에서 수동으로 생성하는 FORM 태그의 포스트 백 URL을 다시 쓸 수 있습니다. 아마도 App_Browsers 파일과 ControlAdapter를 사용하는 것이 가장 깨끗한 방법 일 것입니다.
이러한 ControlAdapter 구현의 예가 있지만 URL 재 작성을 사용하여 포스트 백에서 실제 배경 화면 URL로 되돌아 가지 않도록하기위한 것입니다. 그러나, 나는이 문제에 대한 아웃 - 오브 - 박스
public class FormRewriterControlAdapter : System.Web.UI.Adapters.ControlAdapter
{
protected override void Render(HtmlTextWriter writer)
{
base.Render(new RewriteFormHtmlTextWriter(writer));
}
}
public class RewriteFormHtmlTextWriter : HtmlTextWriter
{
private const string contextItemKey = "FormActionWritten";
public RewriteFormHtmlTextWriter(HtmlTextWriter writer) : base(writer)
{
InnerWriter = writer.InnerWriter;
}
public RewriteFormHtmlTextWriter(System.IO.TextWriter writer) : base(writer)
{
base.InnerWriter = writer;
}
public override void WriteAttribute(string name, string value, bool fEncode)
{
// If the attribute we are writing is the "action" attribute, and we are not on a sub-control,
// then replace the value to write with the raw URL of the request - which ensures that we'll
// preserve the PathInfo value on postback scenarios
if (name == "action" && !HttpContext.Current.Items.Contains(contextItemKey))
{
// Use the Request.RawUrl property to retrieve the un-rewritten URL
value = HttpContext.Current.Request.RawUrl;
HttpContext.Current.Items[contextItemKey] = true;
}
base.WriteAttribute(name, value, fEncode);
}
}
Form.browser 파일 일 것이라고 생각 : 새 응용 프로그램 풀을 시도
<browsers>
<browser refID="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.HtmlControls.HtmlForm" adapterType="FormRewriterControlAdapter" />
</controlAdapters>
</browser>
</browsers>
... 아니 주사위를 ... 다시 쓰는 문제는 베타 버전이 고객 테스트를위한 준비 사이트로 사용된다는 것입니다 ... 저는 사용자 정의 컨트롤을 포함하여 100 개 이상의 클래스가 포함 된 40 개 이상의 프로젝트를 작업 중입니다 ... – Patrick
아무 것도 다시 쓸 필요가 없습니다. 위의 코드는 문제를 해결하는 데 필요한 모든 것이어야합니다. – Thorarin