我想在C#中使用VS2015構建一個簡單的Web服務,並託管在Windows Server 2012R2上。IIS:解析器錯誤消息:無法創建類型
我編寫了代碼,它在Visual Studio調試器中託管時可以正常工作。調試器將啓動IE並給我用戶界面來測試我的代碼中的簡單方法。我可以輸入攝氏溫度並恢復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
我對將要構建出版我的項目 - >發佈Web應用程序。我選擇「文件系統」作爲我的發佈方法,並在調試配置中發佈到「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頁面時,我在事件代碼:3006 事件消息:解析器錯誤已在應用程序事件日誌中得到源「ASP.NET 4.0.3.30319.0」的事件1310發生「以及顯示一堆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試圖告訴我的背景。任何提示將不勝感激。
IIS_IUSRS帳戶對C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET文件具有修改,讀取和執行,寫入等權限。 在服務器管理器中,.NET擴展性3.5和4.0都被檢查。 在IIS管理器中,該應用程序的文件夾具有Handler Mappings,用於啓用* .asmx。 這是我該如何檢查這三個項目? – Nevo
我會問的中間一個。使用管理員權限打開命令提示符,並在「C:\ Windows \ Microsoft.Net \ Framework \ v4.0.30319」中運行「aspnet_regiis -i」(或者最後一組數字爲要註冊2.0或4.0的框架版本) –
JB,我這樣做了,aspnet_regiis告訴我「此版本的操作系統不支持此選項」,並將我引用到http://go.microsoft.com/fwlink/?LinkID=216771。 另請參閱原始帖子中的UPDATE。 – Nevo