1

更新- 一开始指向错误的目录。感谢Wiktor的提示。仍然无法通过以下方式成功运行 MVC4 应用程序

我正在尝试(现在有一段时间.. :))在我的开发 PC 上设置一个模拟的多租户 webapp。我了解到这对于 Visual Studio 的内部网络服务器是不可能的,所以我正在尝试设置 IIS。

fake我在我的主机中添加了租户。

127.0.0.1 localhost
127.0.0.1 tenant1.mydomain.com
127.0.0.1 tenant2.mydomain.com

在 IIS 中,我创建了一个新网站test(端口 8081),并将其指向C:\Azure\Websites\. 在该目录中,我添加了一个Hello Worldhtml 文件以查看该位是否有效。

  • 我导航到 localhost:8081 => Hello world
  • 我导航到tenant1.mydomain.com:8081 => Hello world。

酷,生命的第一个证明。


下一步:使用在 VS2012 中创建的 MVC4 webapp 使其工作。

我启动了一个新的 MVC4 webapp 并将其存储在: C:\Azure\Websites\MvcApplication1

我只是使用默认生成的网站进行测试,所以我按下F5并验证了该网站是在Firefox中打开的。所以目标是让这个从 IIS 工作。

  • 创建了一个新网站test2(端口 8082)
  • 将 test2 应用程序池设置为 .net4.0
  • 将物理目录指向C:\Azure\Websites\MvcApplication1\MvcApplication1\
  • 导航到本地主机:8082

HTTP 错误 500.21 - 内部服务器错误处理程序“ExtensionlessUrlHandler-Integrated-4.0”的模块列表中有一个错误模块“ManagedPipelineHandler”

卸载 ASP.NET 并重新安装。结果相同。

当我改变 web.config 从

preCondition="classicMode,runtimeVersionv4.0,bitness32"

preCondition="integratedMode,runtimeVersionv4.0,bitness32"

然后我得到这个错误:

HTTP 错误 404.2 - 未找到 由于 Web 服务器上的 ISAPI 和 CGI​​ 限制列表设置,无法提供您请求的页面。

我能否强调一下我在 IIS 配置方面是一个 n00b 的事实...... :)

有任何想法吗?

4

3 回答 3

1

ISAPI and CGI Restictions in IIS:

  • Add isapi dll for .net 4 32bit
  • Add isapi dll for .net 4 64bit

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

And it works. Finally!

Thanks Wiktor

于 2013-02-02T12:42:56.583 回答
0

首先将 IIS 配置为手动配置 打开控制面板并单击程序和功能 » 打开或关闭 Windows 功能。打开 Internet 信息服务。

在 Internet 信息服务下,打开以下功能:Web 管理工具 » IIS 6 管理兼容性 » IIS 元数据库和 IIS 6 配置兼容性。

Web 管理工具 » IIS 管理控制台、IIS 管理脚本和工具以及管理服务。

在万维网服务下,打开以下各项: 应用程序开发功能下的所有功能,服务器端包含除外。常见 HTTP 功能 » 默认文档、目录浏览、HTTP 错误、Http 重定向、静态内容。安全 » 基本身份验证、请求过滤、Windows 身份验证。

在 Microsoft .NET Framework 3.5.1 » Windows Communication Foundation HTTP 激活下。

创建网站后,打开 Internet 信息服务 (IIS) 管理器。展开您的服务器节点。展开站点节点并单击您的网站。

在右侧的 IIS 部分中,双击 Authentication。执行以下操作之一:

如果您使用表单身份验证,请确保启用匿名身份验证和表单身份验证,并禁用所有其他身份验证。

如果您使用基于声明的身份验证,请确保仅启用匿名身份验证并禁用所有其他身份验证。

再次单击您的网站,然后在 IIS 部分中,双击 Handler Mappings。确保您已启用 *.svc 和 *.xamlx 的处理程序映射,并将可执行路径设置为以下之一:

对于 64 位操作系统:%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll 对于 32 位操作系统:%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 关闭 Internet 信息服务 (IIS) 管理器。

于 2014-12-07T18:07:31.843 回答
0

First configure IIS according this site:

IIS 7.5 handler "extensionlessurlhandler-integrated-4.0" has a bad module "managedpipelinehandler" in its module list

For the above issue, you must go to Control Panel >> Installed Programs and Features >> Repair your .NET Framework by double clicking on it.

于 2014-12-06T17:30:05.250 回答