【发布时间】:2010-09-26 23:47:03
【问题描述】:
我创建了一个非常基本的服务操作,需要将内容写入我的数据库。该服务如下所示:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
[ServiceBehavior(IncludeExceptionDetailInFaults = false)]
public class myService : ImyService
{
public MyServiceResult MyMethod(string p1, string p2)
{
try
{
// Do stuff
MyResponseObject r = new MyResponseObject();
r.Property1 = DateTime.Now;
r.Property2 = "Some other data";
return r;
}
catch (Exception ex)
{
return null;
}
}
}
ImyService 的定义如下所示:
[ServiceContract]
public interface ImyService
{
[OperationContract]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped)]
MyServiceResult MyMethod(string p1, string p2);
}
此服务将同时提供给 WP7 和 iPhone 客户端应用程序。正因为如此,我相信我需要使用 webHttpBinding。这导致我在 web.config 文件中使用以下设置:
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="myServiceBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment
aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
<services>
<service name="myService">
<endpoint address=""
behaviorConfiguration="myServiceBehavior"
binding="webHttpBinding"
contract="ImyService" />
</service>
</services>
</system.serviceModel>
服务和 WP7 应用程序都是同一解决方案的一部分。我可以在我的应用程序中成功添加对服务的引用。但是,当我运行应用程序时,引用该服务的页面会引发错误。错误说:
在 ServiceModel 客户端配置部分中找不到引用合同“MyServiceProxy.ImyService”的默认端点元素。这可能是因为找不到您的应用程序的配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素。
我做错了什么?看起来这应该是一件非常简单的事情。感谢您的帮助。
【问题讨论】:
标签: silverlight wcf windows-phone-7