Jag har försökt göra en mycket enkel webservice, min första. När jag provar den lokalt så fungerar den som det är tänkt. när jag laddar upp den till mitt webbhotell så får jag felmeddelande. Magnus, Magnus, Andreas,Vad har jag gjort fel?
Felmeddelandet lyder:
<b>Request format is unrecognized.</b>
Koden i vb-filen ser ut så här:
<code>
Imports System.Web.Services
Imports System
<System.Web.Services.WebService(Namespace := "http://tempuri.org/imm/temperatureservice")> _
Public Class temperatureservice
Inherits System.Web.Services.WebService
#Region " Web Services Designer Generated Code "
Public Sub New()
MyBase.New()
'This call is required by the Web Services Designer.
InitializeComponent()
'Add your own initialization code after the InitializeComponent() call
End Sub
'Required by the Web Services Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Web Services Designer
'It can be modified using the Web Services Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
End Sub
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
'CODEGEN: This procedure is required by the Web Services Designer
'Do not modify it using the code editor.
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
#End Region
<WebMethod()> Public Function ToCelsius(ByVal TF As Double) As Double
Return (5 / 9) * (TF - 32)
End Function
<WebMethod()> Public Function ToFahrenheit(ByVal TC As Double) As Double
Return (9 / 5) * TC + 32
End Function
End Class
</code>
koden i HTML-filen ser ut så här:
<code>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>postinvoke</title>
</head>
<body>
<form action="temperatureservice.asmx/ToFahrenheit" method="post">
<input value="32" name="TF" />
<input type="submit" value="Räkna" />
</form>
</body>
</html>
</code>
Vad kan jag ha gjort för fel? Jag har följt boken ASP.NET Unleashed.Sv: Vad har jag gjort fel?
Troligen har ditt webbhotell konfigurerat sin server så att WebServices inte kan anropas med hjälp av <b>GET</b> eller <b>POST</b> utan bara med <b>SOAP</b>. Vad du bör göra är att göra det på riktitg ASP.NET sätt, dvs. skapa en <b>Web Reference</b>, i ditt ASP.NET projekt, till din Web Service och sen anropa den via den <b>Proxy</b> (den klass som VS.NET genererar till dig för anrop till din Web Service) som du får till den.
Om du måste använda POST eller GET så får du troligen kontakta ditt webbhotell angående detta. De har troligen (om du inte själv har ngt liknande i din Web.Config) ställt in följande i <b>Machine.config</b>
<webServices>
<protocols>
<add name="HttpSoap"/>
<!-- <add name="HttpPost"/> -->
<!-- <add name="HttpGet"/> -->
<add name="Documentation"/>
</protocols>
</webServices>
Sv:Vad har jag gjort fel?
Innar du stänger eller markerar en tråd som löst så får du hemskt gärna återkomma med feedback på om tidigare inlägg löste ditt problem. Detta är inte för min skull utan för andra som kanske råkar ut för liknande bekymmer och söker efter svaret på här på pellesoft. Då är det bra om tips bekräftas om de är korrekta så att de då vet att det finns en fungerande lösning i tråden.Sv: Vad har jag gjort fel?
Jag ska minnas detta i fortsättningen.
Du hade så rätt i det du skrev. Jag kunde inte använda "post" eller Get".