我有一个WCF服务,它将像标准Web服务一样使用,但我也想为各种服务设置提供配置UI.当服务未在IIS中托管时,是否可以提供标准HTML页面?如果是这样,那里有什么"陷阱"?
WCF是用于创建服务的API.处理"配置网页"超出了此API的范围.如果您真的想要做类似的事情,那就意味着您必须创建另一个REST(webHttp)服务,该服务将公开为您的网页提供服务并接受来自您网页的HTTP POST.这是可能的,但要做很多工作,因为当前的WCF版本不喜欢POST的HTML表单的内容类型(application/x-www-form-urlencoded和multipart/form-data).您可以通过使用HttpListener以相同的方式实现自己的自托管"Web服务器" .
是的你可以.这正是在向服务添加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;
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以在内存流中构建页面.此外,在WCF 4.5+中,提供了HttpResponseMessage类型来提供html页面.希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
2795 次 |
| 最近记录: |