我在 ASP.NET MVC 3 (C# / Razor) 框架下开发了一个应用程序,到目前为止一切正常。昨天,我决定在我的开发机器(Windows 7)上安装 IIS 7(我认为是 7.5?),看看在部署到实际服务器时是否会出现任何问题。好吧,有几个问题,其中 3 个我找不到答案(也许没有答案)。
第一个问题(也许这个问题应该在 Stack Overflow 上询问)
在 Visual Studio 2010 中,当我转到项目属性中的“Web”部分时,我将“服务器”配置切换为“使用本地 IIS Web 服务器”,并取消选中“使用 IIS Express”配置。但是,每当我单击“创建虚拟目录”时,我都会收到一条错误消息,提示 Visual Studio 无法为 ASP.NET 4.0 配置 Web,并要求我手动执行此操作。但是,它确实创建了虚拟目录,并且似乎可以正常工作(但网站无法加载,这将引出我的第二个问题)。在 Visual Studio 中,我也无法在 Debug(甚至 Release)模式下运行网站,但这应该不是问题,因为我只需要编译(也许重新启动应用程序池/网站)。
第二个问题
按照上述步骤,我最终得到了 403.18 Forbidden 错误。(抱歉没有发布错误消息,但由于它是法语的,所以它没什么用……该死的魁北克 101 法律强迫公司购买所有法语产品)然后我尝试对 Web 应用程序进行“手动”(但配置了 Visual Studio 的发布功能)设置,该设置会将应用程序直接部署在 Web 应用程序根目录中,而不是虚拟目录中。这解决了问题,但我仍然希望让它在虚拟目录中工作。
第三个问题-已解决
当使用 本地运行应用程序时http://localhost/
,它会在没有任何提示的情况下使用我的 Windows 帐户。当我使用我的 LAN IP(本地或远程)甚至我的环回 IP(127.0.0.1)访问应用程序时,它会要求输入登录名和密码。我相信启用 ASP.NET Impersonate 会在尝试登录之前尝试使用登录帐户,但我显然错了,除非我做错了什么。有人能帮我解决这个问题吗?
多谢,
普卢克
(附言:我不确定要发布什么配置文件,所以如果缺少任何信息,请在评论中告诉我您需要哪个文件,我会编辑我的问题以添加所需的信息)
第三个问题的解决方案
这只是浏览器无法将 IP 检测为内联网网站的问题。将 IP 添加到受信任的网站或使用 FQN(我使用了计算机名称)即可。
答案1
关于#3,
Internet Explorer 将尝试通过在 URL 中查找“。”来检测 Intranet 地址。
这就是为什么您通过 IP 访问时会出现提示(即使是 127.0.0.1,它也有点)。
您可以手动将站点添加到 Intranet 区域,这样 Windows 身份验证就可以正常工作。