0

SQLServer2005のストアドプロシージャからWCFWebサービスを呼び出す必要があるというやや複雑な問題があります。

調査中に、.NET SQL Server 2005の唯一のバージョンが2.0をネイティブにサポートすることを発見しましたが、クライアントを使用して.NET4用に作成されたWebサービスを利用する必要がありました。 .NET 4 DLLを認識するために、.NET 2 CLRストアドプロシージャを作成し、COMとして公開された.NET4で記述されたラッパークラスを使用してWebサービスを呼び出すことにしました。

.NET2で.NET4dllをCOMdll(linklink)として使用する方法を扱っているガイドをいくつか見つけましたが、まだ苦労しています。

私の「ラッパークラス」(.NET 4)は次のようになります。

namespace Wrapper
{
    [Guid("4C1D992C-4965-49B2-A694-33810A3B9775")]
    [ComVisible(true)]
    public class WrapperClass
    {
         public bool Process(Guid ID)
         {
         }
    }
}

上記の2番目のリンクで提案されているように、app.manifestファイルを追加しました。ただし、生成されたDLLを.NET 2 SQL Serverプロジェクトに追加すると、次のメッセージが表示されてビルドに失敗します。

1>c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1578,5): Warning:  MSB3274: The primary reference "Wrapper" could not be resolved because it was built against the ".NETFramework,Version=v4.0" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v2.0".

私はここで何が間違っているのですか?DLLを参照としてまったく追加しないようにしましたが、コードがコンパイルされません。

あるいは、この問題に取り組むことができる別の(より簡単な)方法はありますか?

編集:Web参照を直接追加することもできません:

ここに画像の説明を入力してください

4

1 に答える 1

0

結局、John Koernerの提案を使用し、を使用しないWSDLを使用してクライアントを生成することになりましたSystem.ServiceModel。その結果、CLRアセンブリ.net 2.0を作成しましたが、正常に機能しました。

于 2013-02-01T15:36:52.887 に答える