我正在尝试在DNN下运行WCF服务
我创建了一个新的WCF服务网站项目并将输出设置为C:\inetpub\...\dotnetnuke\bin
我还从该项目中删除了web.config
然后我在控制台项目上创建并尝试添加服务引用,但是我收到以下错误:
An error occured while attempting to find services at 'http://localhost:5847/MyService/Service.svc
我将代码从旧的网络配置中移除到dnnweb config <system.serviceModel>
但仍然无法正常工作。
我想要做的是能够使用像
localhost/dotnetnuke/portal/mywebservice...
而不是默认
localhost:XXXX/...
这是来自我的dotnetnuke web.config
<system.serviceModel>
<services>
<service name="Service" behaviorConfiguration="ServiceBehavior">
<endpoint address="localhost/dotnetnuke/service.svc" binding="wsHttpBinding" contract="IService">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
如果我在浏览器中输入完整地址
http://localhost/dotnetnuke/desktopmodules/com.demo.service/service.svc
我收到以下错误页面:
类型&#39;服务&#39;,作为服务属性值提供 ServiceHost指令,或在配置元素中提供 system.serviceModel / serviceHostingEnvironment / serviceActivations可以 找不到。
答案 0 :(得分:3)
即使您确实可以使用此功能,但您只需调用任何DNN API,因为您的请求不具备完整的DNN上下文。
更容易的解决方案是使用服务框架。它最初是在6.2和基于MVC2的实现中发布的,并且很快将在7.0中使用基于WebAPI的实现进行更新。
您可以找到有关使用服务框架here的几篇帖子。