2011-01-13 31 views
0

私は特にWebサービスを開発する際に新しいです。現在、動作するようには思えないので、私は私がやり直しする必要があり、この既存のWebサービスを持って、WebサービスとDLLを参照するWebサービスとの比較

ウェブサービスは、全体の内容だDLLクラスへの参照

<%@ WebService Language="C#" Class="MyClass"%> 

を持って...、それbinフォルダにありMyClass.dll

私は、Webサービス自体の内部のMyClassクラスを入れてやった

....

<%@ WebService Language="C#" Class="MyClass"%> 

using System; 
using System.IO; 
using System.Data; 
//... 

[GeneratedCodeAttribute("wsdl", "2.0.50727.42")] 
[WebServiceAttribute(Namespace = "http://service.search.lsc.slacker.com")] 
[WebServiceBindingAttribute(Name = "TLSCSoap22Binding", Namespace = "http://service.search.lsc.slacker.com")] 
public class MYClass: System.Web.Services.WebService 
{  
    //... 
} 

を持っており、それが行った作業、テストしたすべての機能および電子非常に期待どおりに働いた。

しかし、私はこの解決策を提案する前に、すべての影響を確認する必要があり、私の代わりに

私はそれがDLLにカプセル化された理由の以前の開発を依頼することはできませんのでご注意くださいDLLを参照することの利点を見落としている場合がありますファイル と私は、このDLLは他の外部アプリケーションから再利用できないという事実を知っています。ウェブサービス専用に作成されたのは です。

私の疑問は、なぜ古い開発者がクラスを含むDLLを作成し、単なるWebサービスではなくWebサービスによって消費されたのかということです。

答えて

1

おそらく、開発者の本来の意図は、いくつかのDLLとWebサービスがすべてのDLLのゲートウェイとして機能するように機能することでしたか?

+0

私たちはすべての機能をDLLに入れています。ウェブサービスは、セキュリティを担い、DLLに必要な機能を呼び出すファサードです。 –

+0

私たちは理解していますが、私の理解では、1つのDLLをWebサービスページに割り当てることしかできません。 1つのページに複数のDLLを割り当てる方法はありますか? – pmartin

0

以前の開発者がVisual Studioで事前定義されたWebサービステンプレートの1つを使用してWebサービスを作成した場合、コードビハインドモデルは、プロジェクトがどのようにすぐに構造化されたかです。

例では、元のasmxページがクラスの名前空間を使用しているクラスを参照していません。 MyClass参照のネームスペースがないと、サービスが正しく動作しないという問題が発生していた可能性があります(実際には "サービスがうまくいかない"よりもはるかに多くの情報を提供していないためです)。

希望に役立ちます!

0

いくつかの理由が考えられます。元の開発者は、外部使用のためにdllをブラックボックスに入れることを意図していたかもしれません。他の開発者が、このような性質のライブラリをテストするためのカスタムビルドの "in the can"テストハーネスを持っている可能性もあります。中間のエージェントはコードの背後に影響を与えることができないので、プリコンパイルされたdllはSDLCの間に少し安全です。コンパイルされていないWebサービスのコードは、誤って(または悪意のある意図で)編集することができます。

結局のところ、それは男の好みであった可能性があります。外的要因が影響を及ぼさない限り、決定は実際にはかなり自由です。

関連する問題