У меня есть веб-служба ASP.NET с несколькими методами, которые используются веб-приложением ASP.NET. Одно решение содержит два (2) проекта для веб-службы и веб-приложения. Решение запускает веб-сервис при запуске. После запуска веб-службы я выбираю ...
Отладка> Начать новый экземпляр
... чтобы запустить веб-приложение.
Когда веб-приложение запускается, оно выполняет вызовы веб-службы. Я могу поразить точки останова, установленные в файле Global.asax.vb веб-службы для следующих пустых подпрограмм: Application_BeginRequest, Application_AuthenticateRequest и Application_Error. Я также установил точки останова для каждой функции, определенной в файле .asmx.vb веб-службы.
Веб-приложение выполняет следующий код до получения 404, возвращенного в WebServiceInterface.vb ...
Shared Sub New()
Dim settings As appSettings = appSettingsHelper.loadWebServiceSettings(HttpRuntime.AppDomainAppPath)
service = New WebService.WebService()
service.Timeout = -1
service.Url = settings.WebServiceURL
End Sub
... а затем эта функция вызывается из веб-приложения ...
Public Shared Function selectTasksForGridDisplay() As DataSet
Dim currentUpdateDate As DateTime = service.selectTaskUpdateInfo()
'<code to process returned DateTime from web server method>
End Function
... и затем эта функция вызывается в файле Reference.vb ...
<System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/selectTaskUpdateInfo", RequestNamespace:="http://tempuri.org/", ResponseNamespace:="http://tempuri.org/", Use:=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle:=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)> _
Public Function selectTaskUpdateInfo() As Date
Dim results() As Object = Me.Invoke("selectTaskUpdateInfo", New Object(-1) {})
Return CType(results(0),Date)
End Function
После выполнения интерфейса "selectTaskUpdateInfo" веб-служба получает запрос в режиме отладки. Файл Global.asax.vb веб-службы достигает точек останова, но не попадает в файл WebService asmx.vb, где определен метод «selectTaskUpdateInfo».
Файл веб-службы Global.asax.vb содержит пустые подпрограммы, внутри которых есть только строки комментариев. Это проблема?
Imports System.Web.SessionState
Public Class Global_asax
Inherits System.Web.HttpApplication
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
'Fires when the application is started
End Sub
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
' Fires when the session is started
End Sub
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
' Fires at the beginning of each request
End Sub
Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
' Fires upon attempting to authenticate the use
End Sub
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
' Fires when an error occurs
End Sub
Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
' Fires when the session ends
End Sub
Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
' Fires when the application ends
End Sub
End Class
Однако ни одна из точек разрыва файла .asmx.vb веб-службы не была достигнута. Это происходит, даже несмотря на то, что запрошенный веб-метод определен этим веб-сервисом.
Веб-сервис возвращает HTTP-статус только 404 - Не найдено, но я не знаю почему.
Существуют ли какие-либо настройки Visual Studio 2013, альтернативные точки останова или что-то еще, что может помочь определить, почему веб-служба возвращает состояние ошибки 404 - Не найдено?