我有一個WCF服務可以像標準的Web服務一樣使用,但我也想爲各種服務設置提供一個配置UI。當服務不在IIS中託管時是否有可能提供標準HTML頁面?如果是這樣,那裏有什麼「陷阱」?我可以通過非IIS託管的WCF服務提供網頁嗎?
2
A
回答
5
WCF是用於創建服務的API。處理「配置網頁」超出了本API的範圍。如果你真的想這樣做,這意味着你必須創建另一個REST(webHttp)服務,它將公開你的網頁的操作並接受來自你網頁的HTTP POST。這是可能的,但要做很多工作,因爲當前的WCF版本爲doesn't like content type of POSTed HTML forms(application/x-www-form-urlencoded和multipart/form-data)。您可以通過使用HttpListener以相同的方式實現您自己託管的「Web服務器」。
0
是的,這是可能的。您可以在.NET應用程序中託管WCF服務,或者在HTTP或TCP端口上託管Windows服務。
然後,您將不得不在另一個Web服務器中託管您的站點,並在您的Web應用程序中創建對您的WCF服務的引用。
0
自託管代替IIS通常包含IIS應用程序池的工具/回收/恢復功能的丟失。但是,自主託管往往表現更好。
3
是的,你可以。當將HTTP幫助行爲添加到服務時,這正是WSDL幫助頁面的服務方式。
[ServiceContract]
public interface ITestService
{
[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "test")]
Stream GetPage();
}
[ServiceBehavior]
public class TestService : ITestService
{
public Stream GetPage()
{
var pageStream = new FileStream(Path.Combine(Environment.CurrentDirectory, "test.htm"), FileMode.Open, FileAccess.Read, FileShare.Read);
var context = WebOperationContext.Current;
if (context != null)
{
context.OutgoingResponse.ContentType = "text/html";
}
return pageStream;
}
}
您也可以在頁面中建立內存流。此外,在WCF 4.5+中,提供HttpResponseMessage類型用於提供html頁面。希望這可以幫助!
相關問題
- 1. IIS可以託管WCF服務執行後臺任務嗎?
- 2. 我可以將netTcpBinding用於IIS以外託管的WCF服務嗎?
- 3. 我可以在Windows服務中託管WCF服務嗎?
- 4. 我應該在IIS中託管我的WCF服務嗎?
- 5. IIS WCF服務託管與Windows服務
- 6. 我可以在IIS的同一網站上同時託管web服務和WCF服務嗎?
- 7. 我可以使用IIS來託管WCF服務而不使用HTTP嗎?
- 8. WCF數據服務可以由IIS以外的東西託管嗎?
- 9. WCF託管在Windows服務+網頁中?
- 10. 我可以在Windows服務中託管(自我託管)WCF服務並通過http公開它?
- 11. 我可以通過WCF服務創建自定義角色提供者嗎?
- 12. WCF服務託管在Windows服務通過網絡TCP
- 13. 我可以在COM +中託管WCF服務嗎?
- 14. IIS託管的WCF服務和AppDomains
- 15. IIS外部託管的WCF RIA服務
- 16. 404錯誤通過IIS 7.5託管WCF服務共享內容
- 17. WCF:服務託管IIS以外使IIS的萎縮
- 18. SQL Server 2008 Express可以用於提供商業網站託管服務嗎?
- 19. 通過Https自託管WCF服務
- 20. 通過控制檯託管WCF服務
- 21. IIS託管的WCF服務可以配置爲Windows驗證和匿名嗎?
- 22. 對WCF託管REST Web服務與IIS
- 23. 在IIS中託管WCF服務
- 24. 錯誤在IIS託管WCF服務6.0
- 25. WCF服務託管在IIS System.Runtime.InteropServices.SEHException
- 26. 更新IIS自動託管WCF服務
- 27. 在IIS中託管wcf雙工服務
- 28. 在IIS上託管WCF服務
- 29. 在IIS上託管WCF服務
- 30. IIS託管WCF服務錯誤
有關在MSDN上創建服務主機的更多信息,請訪問:http://msdn.microsoft.com/en-us/library/ms731758.aspx – DaveRead 2011-05-07 14:35:51
這不回答提問者的問題。我可以看到從WCF託管HTML頁面的原因之一是用於配置或避免跨域腳本限制(REST服務必須與提供HTML頁面的服務器位於同一域中)。 – 2013-08-10 22:12:19