IIS:分析器错误消息:无法创建类型

时间:2015-10-16 16:14:11

标签: asp.net web-services iis

我正在尝试使用VS2015在C#中构建一个简单的Web服务,以托管在Windows Server 2012R2上。

我已经编写了代码,并且在Visual Studio调试器中托管时它可以正常工作。调试器将启动IE并给我UI以测试我的代码中的简单方法。我可以输入摄氏温度并恢复Farentheit的温度。所以我的理解是我的代码本身正在运行。

然而,当我发布我的项目并尝试在IE中加载它时,我得到:

Server Error in '/' Application.

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 create type 'TestAutomation.AutomationInterface'.

Source Error: 



Line 1:  <%@ WebService Language="C#" CodeBehind="~/App_Code/WebService.cs" Class="TestAutomation.AutomationInterface" %>



 Source File:  /TestToolsAutomation/AutomationInterface.asmx    Line:  1 


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.81.0 

我将通过Build - &gt;发布我的项目发布Web App。我选择“文件系统”作为我的发布方法,并在调试配置中发布到“C:\ inetpub \ wwwroot \ MyAppName”,文件发布选项中没有复选框。发布时,我在MyAppName文件夹中有以下文件:

-AutomationInterface.asmx
-Web.config
\App_Code
  WebService.cs

我在这里看到的一个明显问题是,我的编译代码没有创建.dll文件。我离IIS专家很远,但这不是应该在用户第一次请求页面时创建的吗?

然后我重新发布并检查了文件选项中的“发布期间的预编译”。当我这样做时,创建一个文件“App_Code.compiled”和“App_Code.dll”文件的\ bin文件夹。但是,我在浏览器中收到同样的错误。

因为我的代码在VS调试器中工作但在IIS中托管时没有,我怀疑问题出在IIS方面,但我并不是100%肯定。

当我在IE中请求IIS页面时,我在应用程序事件日志中得到一个带有源“ASP.NET 4.0.3.30319.0”的事件1310,其中显示“事件代码:3006 事件消息:发生了解析器错误“以及显示一堆System.Web.Compilation函数的堆栈跟踪。

我在Stack Overflow和其他网站上搜索过这个错误,但没有一个建议的解决方案能解决我的特定问题。

我希望社区能提供任何帮助。

更新:我在服务器上启用了失败的请求跟踪。看来错误发生在这里:

154. view trace 
Warning 
-MODULE_SET_RESPONSE_ERROR_STATUS 


ModuleName
ManagedPipelineHandler 

Notification
MAP_REQUEST_HANDLER 

HttpStatus
500 

HttpReason
Internal Server Error 

HttpSubStatus
0 

ErrorCode
The operation completed successfully.
 (0x0) 

ConfigExceptionInfo

 ManagedPipelineHandler 

我缺乏完全理解IIS试图告诉我的背景。任何提示将不胜感激。

2 个答案:

答案 0 :(得分:2)

经过几个小时的努力并进行各种设置更改,并多次卸载并重新安装IIS后,我终于解决了这个问题。

我必须右键单击我在IIS管理器中发布文件的文件夹,然后选择“转换为应用程序”。它现在正在运作!

答案 1 :(得分:0)

以下是一些可供探索的想法:

您是否查看了IIS中的应用程序池用于运行此帐户的权限?可能存在未生成的ASP.Net临时文件,这可能是一个问题。

ASP.Net是否在IIS注册?我已经记得多次不得不跑#34; aspnet_regiis -i&#34;在服务器上安装ASP.Net部件,以便它在IIS中出现。

IIS配置为允许ASP.Net请求吗?在机器级别的IIS管理器中,有一个&#34; ISAPI和CGI限制&#34;注意。

更新:也许您可以查看应用程序池的配置,看看它正在使用哪个.Net版本以及它是集成模式还是经典模式。这些将是下一级要检查的事情。