Heim >Backend-Entwicklung >PHP-Tutorial >Änderung der WebService-Portnummer

Änderung der WebService-Portnummer

WBOY
WBOYOriginal
2016-08-08 09:28:251719Durchsuche

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)
{ SOAPADDDRESSBINDINGING BINDING = Extension As SOAPADDDRESSBINDING;
If (NULL ! = Bindung)
{
binding.Location.RPLACE (port Num, string.empty); Else
{
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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn