Heim >Backend-Entwicklung >PHP-Tutorial >Änderung der WebService-Portnummer
Bei Verwendung der Webservice-Schnittstelle in C# wird die an den Server zurückgegebene IP-Adresse von einer Portnummer begleitet. Manchmal können Sie diesen Port jedoch nicht verwenden (z. B. wenn Sie Nginx für die Weiterleitung verwenden) und müssen ihn auf der Serverseite verarbeiten (der Verarbeitungsinhalt ist der folgende Code). Darüber hinaus müssen Sie etwas zu system.web in web.config in der Konfigurationsdatei hinzufügen:
<webServices>
<Protokolle>
<hinzufügen name="HttpGet"/>
<hinzufügen name="HttpPost"/>
<hinzufügen name="HttpSoap"/>
Protokolle>
<soapExtensionReflectorTypes>
<hinzufügen type="CommMethod.OuterPortReflector,CommMethod"/>
soapExtensionReflectorTypes>
webServices >
Hinweis: 1. Der Typinhalt ist der Klassenname und der Paketname. Dies unterscheidet sich etwas von dem, was die Person auf MSDN geschrieben hat (es könnte sich um ein Versionsproblem handeln) (http://blogs.msdn.com/b/kaevans/archive/2005/11/16/493496.aspx).
2. Wenn in Protokollen kein Inhalt vorhanden ist, kann es sein, dass Post- und Get-Anfragen nicht korrekt erkannt werden (ich habe es nicht überprüft, aber ich habe ähnliche Probleme im Blog-Park gesehen).
3.Stackoverflow-Quelladresse: http://stackoverflow.com/questions/1531448/asp-net-web-service-changes-port-on-invoke
Code:
//------------------------------------ ----------------------------------
//
// * Copyright (C)
// * Version:
// * Autor: ying83811
// * Dateiname: OuterPortReflector.cs
// * Verlauf : erstellt von ying83811
//
//---------------- - ----------------------------------------
mit System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Services.Description;
namespace Better517Na.KoreaProductInterface.CommMethod
{
///
/// OuterPortReflector-Klasse
///
öffentliche Klasse OuterPortReflector: SoapExtensionReflector
{
///
gt;
/ // Umschreiben the ReflectDescript
/// & lt;/Summary & GT
Public Override Void ReflectDescription ()
{
// Um das Problem zu erklären, wird die Portnummer hier direkt geschrieben. Es wird empfohlen, sie in die Konfigurationsdatei zu schreiben = ReflectionContext.ServiceDescription;
foreach (Dienstdienst in description.Services)
{
foreach (Port port in service.Ports)
{
foreach (ServiceDescriptionFormatExtension extension in port.Extensions)
{
If (NULL ! = Bindung)
{
binding.Location.RPLACE (port Num, string.empty);
{
httpaddressBinding = extension as
if (httpbinding! = Null) httpbinding.Location.replace (Portnum, String. Empty);
Soap12Binding = Erweiterung als Soap12AddressBinding;
Replacement(portNum, string.Empty);
🎜> }
}
Das Obige stellt die Änderung der WebService-Portnummer vor, einschließlich der relevanten Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.