C# ASP.NET MVC3 Web应用程序在IIS上发布后表现不同

C# ASP.NET MVC3 Web应用程序在IIS上发布后表现不同,c#,asp.net-mvc-3,iis-7.5,C#,Asp.net Mvc 3,Iis 7.5,我已经编写了一个ASP.NET MVC3 Web应用程序,它在Visual Studio开发Web服务器中运行良好,并在特定的IIS Web服务器上运行 我已在另一台IIS web服务器上成功发布了相同的web应用程序。除了一个奇怪的行为外,它运行良好 我的控制器操作返回的内容没有问题,但布局页面没有呈现。我最终只有控制器操作返回的内容 我遗漏了什么?我打赌您已经将Url硬编码到视图中的脚本和CSS,而不是使用Url帮助程序。你写道: <link href="/Content/Site.c

我已经编写了一个ASP.NET MVC3 Web应用程序,它在Visual Studio开发Web服务器中运行良好,并在特定的IIS Web服务器上运行

我已在另一台IIS web服务器上成功发布了相同的web应用程序。除了一个奇怪的行为外,它运行良好

我的控制器操作返回的内容没有问题,但布局页面没有呈现。我最终只有控制器操作返回的内容


我遗漏了什么?

我打赌您已经将Url硬编码到视图中的脚本和CSS,而不是使用Url帮助程序。你写道:

<link href="/Content/Site.css")" rel="stylesheet" type="text/css" />

而不是正确的方式:

<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>

现在,继续搜索所有您有这样硬编码URL的地方,并用帮助程序生成的URL替换它们


在IIS中部署站点时无法工作的原因是,在IIS中,您必须考虑一个虚拟目录。所以正确的地址是
http://example.com/myappname/content/site.css
而在本地运行时,没有这样的目录
http://localhost:1234/content/site.css

确保正确引用共享布局,或者共享布局chtml文件在页面中可见。这可能是权限问题。您正在使用HTTPS吗?如果无法访问布局文件,它不应该返回错误页面吗?我没有错。我只获取部分视图内容,周围没有布局。可能是缓存?你试过ctrl+f5吗?我想这也是缓存问题。我按CTRL+F5键,但我有相同的行为。在我的开发环境中工作得很好,但是一旦在IIS服务器上,就没有呈现布局页面,只有我的部分视图内容。事实上,在我的布局页面中,jquery脚本没有使用Url.content helper引用。我已经纠正了这一点,它工作得非常好。非常感谢你!
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>