我们的服务器上有一个Web应用程序,位于目录
中 c:\inetpub\wwwroot\myapp
在myapp目录中,我们有一个名为mysubapp
的子目录。 mysubapp有自己的bin目录,需要myapp\bin
目录中的DLL
所以目录如下:
c:\inetpub\wwwroot\myapp
c:\inetpub\wwwroot\myapp\bin
c:\inetpub\wwwroot\myapp\mysubapp
c:\inetpub\wwwroot\myapp\mysubapp\bin
我们目前使用主机标头设置IIS,以便myapp.mycompany.com指向c:\inetpub\wwwroot\myapp
,http://mysubapp.mycompany.com
重定向到http://myapp.mycompany.com/mysubapp
。
我们希望mysubapp.mycompany.com指向c:\inetpub\wwwroot\myapp\mysubapp
,而网址不是http://myapp.mycompany.com/mysubapp
。
我尝试设置主机标头指向c:\inetpub\wwwroot\myapp\mysubapp
而不使用重定向,但是当我们这样做时,我们收到一条错误消息,指出找不到某些DLL文件,找不到DLL文件c:\inetpub\wwwroot\myapp\bin
中的那些。此错误是有道理的,因为应用程序无法在其应用程序目录之外找到DLL。
我们有什么办法可以配置IIS来实现这个目的吗?
答案 0 :(得分:4)
如果我正确理解了您的问题,我能想象的唯一可行的设置就是采用您提到的方法(主机标头指向c:\inetpub\wwwroot\myapp\mysubapp
而不使用重定向)并在主要应用程序中包含主应用程序的DLL文件夹的bin目录。
答案 1 :(得分:2)
您需要使用网址重写。
http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx
答案 2 :(得分:1)
虽然答案未考虑主机标头,但this link中提议的解决办法可能会有用。
答案 3 :(得分:0)
不涉及网址重写的解决方案如下:
答案 4 :(得分:0)
正如DreamSonic所说,为每个应用程序使用不同的网站,每个应用程序使用不同的IP地址。要向服务器添加多个IP,请使用“网络属性”中“Internet协议(tcp / IP)”对话框中的“高级”按钮。在IIS中,将网站设置为响应指定的IP而不是默认的[All Unassigned]。您不需要两个(或更多)NIC。
除此之外,你需要进行一些网址重写,这可能很痛苦,因为你的应用中的所有链接都需要“修复”,否则你最终会在网页中找到不需要的网址。客户的浏览器。
答案 5 :(得分:0)
如果你想在不同的域名下发布/ mysubapp,我认为保持在myapp下的意义不大。
将应用程序设置为单独的Web应用程序,并将dll从myapp复制到mysubapp。因为它是Asp.Net,你甚至可以通过web.config文件做一些程序集绑定魔术。