[英]Will my HttpModule get called if IIS produces a 400: Bad Request?
[英]IIS appears to not be authenticating my request
好吧,全面披露我對IIS和WCF還是陌生的,所以我買了一本書,被困住了。 我可以在工作中使用開發盒進行開發,因為它是帶有IIS 7的Windows 7,但在Windows 8和IIS 8上卻可以在家里使用,我相信有兩個問題,我只是不知道哪個步驟可能會導致此問題。 我正在使用Visual Studio 2012 Professional在兩種環境下在.NET 4.5環境中進行開發。
基本上,我相信IIS設置錯誤,因為我正在遵循一本名為“ Windows Communication Foundation 4,請循序漸進”的書http://www.amazon.com/Windows-Communication-Foundation-Step-Microsoft/dp/0735645566
我按照設置說明進行操作,但是它們在家里有些不同,並且很好奇該如何糾正此錯誤:
“響應消息的內容類型text / html; charset = utf-8與綁定的內容類型不匹配(text / xml; charset = utf-8)。如果使用自定義編碼器,請確保IsContentTypeSupported方法已正確實施。響應的前1024個字節為:“
在創建WCF服務庫Web項目之后,此代碼發生,它引用了實體框架模型。 您創建引用Web服務的控制台應用程序,並且該應用程序運行良好。 您將該Web服務部署到IIS並更改配置文件以引用該位置,並且該錯誤僅在Windows 8計算機上出現上述錯誤,Windows 7運行良好。
我注意到我無法在設置中執行兩個步驟,並認為它們是罪魁禍首,但還不知道如何針對Windows 8進行調整。
從VS命令提示符:“ aspnet_regiis -iru”,這對於IIS 8根本不起作用。不知道打開IIS為asp.net操作的通用設置設置哪些選項。 -我確實嘗試進入IIS,並在“身份驗證”下啟用匿名身份驗證和ASP.NET。 仍然沒有解決任何問題。
本書附帶一個sql對象,該對象隨后將兩個用戶注冊到“ Adventureworks”數據庫中。 顯然我在猜測,因為第1部分不起作用,或者由於Windows 8設置,這些用戶不存在,因此無法注冊。 注冊用戶的代碼為:
'創建用戶[IIS APPPOOL \\ DefaultAppPool]登錄[IIS APPPOOL \\ DefaultAppPool] GO EXEC sp_addrolemember N'db_owner',[IIS APPPOOL \\ DefaultAppPool] GO創建用戶[IIS APPPOOL \\ ASP.NET v4.0]登錄[IIS APPPOOL \\ ASP.NET v4.0]執行EX sp_addrolemember N'db_owner',[IIS APPPOOL \\ ASP.NET v4.0] GO'
非常感謝任何幫助,因為我知道這可能只是一種簡單的方法。
好吧,我想我明白了,但是我卻沒有做到。 看來我需要在IIS 8中使用匿名訪問來運行該服務。轉到默認站點“禁用” ASP.NET模擬下的“身份驗證”。 但是...由於某種原因,Windows 8默認未啟用.NET 4.5的IIS8和WCF選項。因此,我發現了這一點: http : //proq.blogspot.com/2012/09/wcf-on-iis- and-windows-8.html並啟用它們。
很奇怪,無論如何,我知道在某個時候我將不得不在模仿服務器環境的本地計算機上注冊ASP.NET用戶。 但是暫時匿名訪問似乎有效。 我很好奇,但是如果IIS知道它有兩種選擇,而匿名是為什么它失敗了? 是否始終將限制性最強的策略作為接入點綁定的默認策略? 我對IIS完全陌生,似乎我將不得不學習它以及WCF。
編輯:使用某些設置運行VS 2012時,還請確保以管理員身份運行VS,否則您可能也會遇到問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.