0

DNN で WCF サービスを実行しようとしています。
新しい WCF サービス Web サイト プロジェクトを作成し、出力を次のように設定C:\inetpub\...\dotnetnuke\bin
しました。そのプロジェクトから web.config も削除しました。
次に、コンソール プロジェクトで作成し、サービス参照を追加しようとしましたが、次のエラーが発生しました。

An error occured while attempting to find services at 'http://localhost:5847/MyService/Service.svc

古い W​​eb 構成から dnnweb 構成にコードを削除しまし<system.serviceModel>たが、まだ機能しません。私がやりたいのは、次のようなURLでWebサービスにアクセスできるようにすることです

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

次のエラーページが表示されます。

ServiceHost ディレクティブの Service 属性値として提供されるか、構成要素 system.serviceModel/serviceHostingEnvironment/serviceActivations で提供されるタイプ「サービス」が見つかりませんでした。

4

1 に答える 1

3

これが機能したとしても、リクエストに完全な DNN コンテキストがないため、DNN API の呼び出しに問題が生じるだけです。

Services Framework を使用すると、はるかに簡単な解決策が得られます。最初は MVC2 ベースの実装で 6.2 でリリースされ、まもなく WebAPI ベースの実装で 7.0 に更新されます。

Services Framework の使用に関するいくつかの投稿をここで見つけることができます。

于 2012-10-03T00:44:01.957 に答える