我想将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&amp; config -js for angular)。
结构将是这样的
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 \ =&gt; customerA.myCompany.com
c:\ inetpub \ wwwroot \ curstomerB \ =&gt; 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)
答案 0 :(得分:0)
好的,在我阅读H.G. Sandhagen指出的链接和相关链接后
它无法按预期工作,因为IIS使用虚拟目录将url与物理目录匹配,但Web应用程序在web.config所在的主文件夹下面的bin文件夹中查找dll(在物理directoris中)。有可能在web.config中更改搜索路径指定程序集的位置,但据我所知,这仅适用于子文件夹。
它似乎不可能,因为它似乎只适用于子文件夹。 因此,我通过创建directory junction解决了我的问题。
所以bin文件夹现在使用这个符号链接,我使用的其他目录是虚拟IIS目录。
PS:我现在意识到这个stackoverflow主题的标题应该是一个问题格式,如:
“为什么我无法成功将'bin \'绑定为IIS中的虚拟目录?”
我的道歉;)