VStudio.net 2003を使用してVBで書かれたWebアプリケーションが割り当てられました。ローカルホスト(VStudio 2008)でソースを設定しようとしています。 (私は実際の変更を開始する前に)現在のアプリケーションについて、私はデバッグをWebサービスプロジェクトのために働かせることはできません。Visual Studio 2008でWebサービスプロジェクトをデバッグできません
症状1:私はF11(stepInto)に私の実際のWebメソッドを呼び出すプロキシクラスをしようとすると
"Unable to automatically step into the server. The remote procedure could not be debugged.
This usually indicates that debugging has not been enabled on the server.
See help for more information".
これが起こります。
症状2:.asmxファイル内のブレークポイントをプリセットすると、呼び出されるステートメントのコードが機能しません(つまり、デバッガは単に停止しません)。
は、状況を説明してきたが、ここで私のVStudioソリューションが設定されている方法は次のとおりです。
サービス1を - VBから作成したプロジェクト - WEB - ASP.NET Webサービスアプリケーションテンプレート。このService1プロジェクトには、デバッグしたい主な.asmxソースコードが含まれています。 Windowsのから作成された別のプロジェクト - - コンパイルdefaultLanguage = "VB" デバッグ= "true" を
ProxyService1含まれているこのプロジェクトのWeb.config [VB]クラスライブラリテンプレートを。ここでform1.vbファイルが削除されました。私は "サービス参照の追加" - >ディスカバー(サービスのソリューション)を訪問し、 "互換性"セクションで "Web参照の追加"をクリックします。上記のService1を選択すると、WSservice1の「Web参照名」が割り当てられます。この結果、Reference.VBファイルが作成され、プロジェクトのbin \ Debugフォルダにある同じ名前のProxyService1クラス.DLLをビルドすると、このプロジェクトは、コンパイルdefaultLanguage =「VB」デバッグ=「true」を
Project1のではapp.configファイルしている - .aspxのとWebサービスを呼び出すことは.vbファイルとメインUIプロジェクト。 project1にはProxyService1.DLLへの参照があります。このプロジェクトのWeb.configには、コンパイルdefaultLanguage = "vb" debug = "true"が含まれています。私は/上記のstmt上の定義に行くRIGHTMOUSE場合は、ここでReference.vbのコードがある
Public Class Message
Dim wsZipeee As New ProxyService1.WSservice1.myService
Dim dsMessage As DataSet
Public Function GetMessageByType(ByVal iMsgType As Integer) As DataSet
dsMessage = wsZipeee.GetMessageByType(iMsgType)
:私は、おおよそ次のようになります。このプロジェクトと呼ばれるmessage.vb内のファイルのいずれかでブレークポイントに到着します私ProxyService1プロジェクトに:私が知っているIISで
<WebMethod(MessageName:="Get Message By Type")> _
Public Function GetMessageByType(ByVal iMsgType As Integer) As DataSet
con = New SqlConnection(sConnZipeee)
con.Open()
Everyplaceに:完全性については
<System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ZipeeeWebService/Zipeee/Get Message By Type", RequestElementName:="Get Message By Type", RequestNamespace:="http://tempuri.org/ZipeeeWebService/Zipeee", ResponseElementName:="Get Message By TypeResponse", ResponseNamespace:="http://tempuri.org/ZipeeeWebService/Zipeee", Use:=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle:=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)> _
Public Function GetMessageByType(ByVal iMsgType As Integer) As <System.Xml.Serialization.XmlElementAttribute("Get Message By TypeResult")> System.Data.DataSet
Dim results() As Object = Me.Invoke("GetMessageByType", New Object() {iMsgType})
Return CType(results(0),System.Data.DataSet)
End Function
、ここで対応するWebMethod属性は、サービス1プロジェクトの.asmxというファイルでありますチェックし、プロジェクトのプロパティ内で、適切なデバッグ設定がチェックされているかどうかを確認しました。私はこれのように設定されている他のものをデバッグしましたが、私は本当にこの "解決策"で逃したことに固執しています。
OK、私は、Webサービスのプロパティでラジオボタン(以前は見たことがない)に気づき、それを選択しました。あなたがあなたのアプローチをどうやっているのか正確にはわからない:(1)自分の3つのプロジェクトでVSを起動してから、UIプロジェクトのブレークポイントで停止してwebservice(2)を呼び出す前にVSを同じ3つのプロジェクトと.asmxコード(この方法は上記と同じ方法で停止しません)。 また、VSプロジェクトのインスタンスが1つあり、UIプロジェクトに右マウスを置いて、デバッグ - >新しいインスタンスを起動し、デバッグが必要な各プロジェクトを開始します。それがあなたが意味するものなら、私にとってはうまくいかない。 –
私は2つのVSのインスタンスを実行します...それぞれはデバッグを実行していますが、1つはwebserviceプロジェクトで開始し、もう1つはクライアントプロジェクトで開始しました。 – CSharpAtl
VSインスタンスで説明したようにwebserviceをデバッグするだけで、クライアントコードを接続することができます....クライアントをデバッグしていない限り、デバッグ中であれば問題ありません。 – CSharpAtl