ASP.NET发布FTP问题



我正在和我的ASP.NET托管公司周旋。我使用Visual Studio 2012.NET Framework 4.5 创建了一个简单的web应用程序

起初,我试图使用web部署来发布我的网站,即使有他们的文档,我也无法完成这项工作。然后他们让我使用FTP选项来发布。这样做效果很好,我可以发布到我的域名的根目录。但是,当我尝试发布到另一个文件夹domain.com/apps/root/thisapp时,Visual Studio会毫无错误地发布,但当我导航到URL时,我收到了一个500服务器错误。

现在我被要求只使用FTP程序,并将我的所有文件复制到我想要的网站目录中,所以我照做了,现在我在web.config文件上得到了一个"配置错误":

Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level.  This error can be caused by a virtual directory not being configured as an application in IIS.
Source Error:

Line 21:       </namespaces>
Line 22:     <controls><add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt" /></controls></pages>
Line 23:     <authentication mode="Forms">
Line 24:       <forms loginUrl="~/Account/Login" timeout="2880" defaultUrl="~/" />
Line 25:     </authentication>

我在本地没有收到这个错误,网站在我的域根目录下发布时也没有。我没什么主意了,看来我的主人也没什么主意。有人知道你是如何将网站发布到ASP.NET服务器上的任何目录中的吗?

还有人能帮我缩小导致这个错误的原因吗?主机支持,说这是代码或我的项目。然而,我不认为这是真的,因为它在本地和域的根上都很好。我认为IIS或我的文件夹权限有问题。

Web.config包含某些部分,这些部分只能在IIS层次结构中的特定级别上使用。基本级别是Machine、Application和Everywhere(有关具体定义,请参阅此处)。

问题是web.config包含一些仅在计算机或应用程序级别中允许的部分。机器几乎是禁止使用的(除非你拥有机器,但你有主机提供商)。应用程序要求您的文件夹是IIS站点的根目录,或者是IIS中标记为应用程序的子目录(可能是相关链接)。

请尝试询问提供商如何指定要标记为应用程序的目录。如果他们不允许这样做,您将不得不在web.config中查找哪些设置具有此级别的安全设置。

不确定"web部署"是否指web Matrix 3。如果没有,它应该能解决你的问题。我在托管公司遇到了这个问题,当时我使用的是ASP.NET MVC 4互联网应用程序。http://www.microsoft.com/web/webmatrix/

希望这能有所帮助,

岩石

您应该禁用web.config继承:

你可以在http://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.inheritinchildapplications(v=vs.110).aspx

最新更新