[英]Binding bin as a virtual directory in IIS creates global.asax error
我想将ASP.NET MVC应用程序部署到IIS服务器,并通过虚拟目录导入其所有必需的资源。 这与应用程序中使用的所有其他文件夹都可以正常工作。 除了bin /文件夹。 如果我尝试虚拟目录的BIN文件夹,则该应用程序无法启动:
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: Could not load type 'MyCompany.Services.Global'.
Source Error:
Line 1: <%@ Application Codebehind="Global.asax.cs" Inherits="MyCompany.Services.Global" Language="C#" %>
Source File: /global.asax Line: 1
现在我为什么要这样做:
我公司有以下情况:
我们有一个ASP.NET MVC网站解决方案。 它在我们的一台服务器上为2个客户部署。 两个客户总是同时部署。 两者使用相同的版本。 但是他们两个都使用不同的配置文件。 (Web.config和root-config.js表示角度)。
结构会像这样
c:\inetpub\wwwroot\
+ curstomerA\
+ bin\
+ Scripts\
+ Views\
+ (...)
+ web.config
+ root-config.js
+ curstomerA\
+ bin\
+ Scripts\
+ Views\
+ (...)
+ web.config
+ root-config.js
c:\\ inetpub \\ wwwroot \\ curstomerA \\和c:\\ inetpub \\ wwwroot \\ curstomerB \\都是在IIS中创建的自己的网站。 它们具有不同的应用程序池,并绑定到不同的子域:
c:\\ inetpub \\ wwwroot \\ curstomerA \\ => customerA.myCompany.com
c:\\ inetpub \\ wwwroot \\ curstomerB \\ => customerB.myCompany.com
所以我想做的是
c:\inetpub\wwwroot\
+ curstomerA\
+ bin\
+ Scripts\
+ Views\
+ (...)
+ web.config
+ root-config.js
+ curstomerA\
+ <bin> as virtualDirectory onto c:\inetpub\wwwroot\curstomerA\bin\
+ <Scripts> as virtualDirectory onto c:\inetpub\wwwroot\curstomerA\Scripts\
+ <Views> as virtualDirectory onto c:\inetpub\wwwroot\curstomerA\Views\
+ (...) [like above]
+ web.config
+ root-config.js
它不能是访问权限问题; 在本地计算机上,我放宽了对文件夹的访问权限,但仍然无法正常工作。
现在我的问题是:为什么这不适用于BIN文件夹? 为了使这项工作我需要做什么?
还是我只是误解了虚拟目录的用途? (注意:我已阅读https://www.iis.net/learn/get-started/planning-your-iis-architecture/understanding-sites-applications-and-virtual-directories-on-iis )
好,在我阅读了HG Sandhagen指出的链接和相关链接之后
它不能按预期方式工作,因为IIS使用虚拟目录将url与物理目录进行匹配,但是Web应用程序在web.config所在的主文件夹下的bin文件夹中查找dll(在物理目录中)。 可以在web.config中更改搜索路径。指定程序集的位置,但是据我所知,这仅适用于子文件夹。
这似乎是不可能的,因为它似乎仅适用于子文件夹。 因此,我通过创建目录结解决了我的问题。
因此bin文件夹现在正在使用此符号链接,而我使用的其他目录是虚拟IIS目录。
PS:我意识到现在这个stackoverflow主题的标题应该是这样的问题格式:
“为什么不能在IIS中成功将'bin \\'绑定为虚拟目录?”
我很抱歉 ;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.