私は次のプロパティを持つプロジェクトに取り組んでいます:
Asp.net
C#
.Net Framework 4
IIS 7
Application_BeginRequest
その中で、次のように手動で書き換えるために を使用します。
void Application_BeginRequest(object sendet, EventArgs e)
{
bool IsUploading = System.Configuration.ConfigurationManager.AppSettings["IsUloading"] == "1";
if (Request.Headers["X-Requested-With"] == "XMLHttpRequest")
{
return;
}
string Path = Request.RawUrl;
string QueryString = "";
if (Request.QueryString.Count != 0)
{
string[] u = Path.Split(new char[] { '?' });
Path = u[0];
QueryString = u[1];
}
string url = "";
if (Path.EndsWith(".css") || Path.EndsWith(".js") || Path.EndsWith(".png") || Path.EndsWith(".jpg") || Path.EndsWith(".jpeg") || Path.EndsWith(".bmp") || Path.EndsWith(".htm") || Path.EndsWith(".png") || Path.EndsWith(".gif") || Path.EndsWith(".fla") || Path.EndsWith(".swf") || Path.EndsWith(".axd") || Path.EndsWith(".xml") || Path.EndsWith(".ashx"))
return;
if (!Path.EndsWith("/"))
Path += "/";
IEnumerator<string> Part = Path.Split(new char[] { '/' }).AsEnumerable<string>().GetEnumerator();
if (Part.MoveNext() && Part.MoveNext())
{
if (Part.Current == "")
url = "Default.aspx";
else if (Part.Current.ToLower() == "public")
{
if (Part.MoveNext() && Part.Current.ToLower() == "install")
url = "Public/Install.aspx";
else
url = "Public/PageNotFound.aspx";
}
else
url = "Public/PageNotFound.aspx";
}
else
url = "Public/PageNotFound.aspx";
if (url.Contains("?"))
Context.RewritePath("~/" + url + "&" + QueryString);
else
Context.RewritePath("~/" + url + "?" + QueryString);
}
ページを参照しようとするとlocalhost:97
、ブラウザは Default.aspx を開き始めますが、ブラウザを開こうとするとlocalhost:97/Public/Install
、次のエラーが表示されます。
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
エラーはどこにありますか?!!!!
UPDATE1 : brows しようとするとlocalhost:97/Public/Install
、このイベントに配置したブレークポイントで VS が停止しません。私の要求は IIS で拒否されたと思います。
UPDATE2:TFSサーバーで作業しており、他のコンピューターには問題がなく、私のコンピューターだけがこの問題に遭遇したため、コードが100%正しいことを知っています。
私の悪い英語でごめんなさい。私は新しいです。詳細については、私にコメントしてください。