我有一个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