java wsdl asmx 替换_WebService asmx生成的wsdl 修改 location

java wsdl asmx 替换_WebService asmx生成的wsdl 修改 locationC#中使用webservice接口的时候,返给服务器的IP地址是带上了端口号的。但是有时候不能要那个端口(比如用nginx做了转发),就需要在服务端处理一下(处理内容就是后面的代码)。此外,需要在配置文件中web.config中的system.web中添加一些东西:2.如果没有protocols中的内容的话,有可能post和get请求不能被正确识别(未做过验证,只是在博客园上看见过类似问题)。代码…

大家好,又见面了,我是你们的朋友全栈君。

C#中使用webservice接口的时候,返给服务器的IP地址是带上了端口号的。但是有时候不能要那个端口(比如用nginx做了转发),就需要在服务端处理一下(处理内容就是后面的代码)。此外,需要在配置文件中web.config中的system.web中添加一些东西:

2.如果没有protocols中的内容的话,有可能post和get请求不能被正确识别(未做过验证,只是在博客园上看见过类似问题)。

代码:

//———————————————————————–

//

// * Copyright (C)

// * version :

// * author  : ying83811

// * FileName: OuterPortReflector.cs

// * history : created by ying83811

//

//———————————————————————–

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Web.Services.Description;

namespace Better517Na.KoreaProductInterface.CommMethod

{

///

/// OuterPortReflector类

///

public class OuterPortReflector : SoapExtensionReflector

{

///

/// 重写ReflectMethod

///

public override void ReflectMethod()

{

}

///

/// 重写ReflectDescription

///

public override void ReflectDescription()

{

//  为了说明问题,这里直接把端口号写死了,建议写在配置文件中

string portNum = “8888”;

portNum = “:” + portNum;

ServiceDescription description = ReflectionContext.ServiceDescription;

foreach (Service service in description.Services)

{

foreach (Port port in service.Ports)

{

foreach (ServiceDescriptionFormatExtension extension in port.Extensions)

{

SoapAddressBinding binding = extension as SoapAddressBinding;

if (null != binding)

{

binding.Location = binding.Location.Replace(portNum, string.Empty);

}

else

{

HttpAddressBinding httpBinding = extension as HttpAddressBinding;

if (httpBinding != null)

{

binding.Location = “https://baidu.com”;

httpBinding.Location = httpBinding.Location.Replace(portNum, string.Empty);

}

else

{

binding.Location = “https://baidu.com”;

Soap12AddressBinding soap12Binding = extension as Soap12AddressBinding;

if (soap12Binding != null)

{

soap12Binding.Location = soap12Binding.Location.Replace(portNum, string.Empty);

}

}

}

}

}

}

}

}

}

b3d46e7ddfcf9c7654d188d0187cca89.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139642.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux tar压缩文件命令,tar打包压缩文件命令

    linux tar压缩文件命令,tar打包压缩文件命令tar命令tar命令用于将多个文件合成1个文件,wiki中把这个命令和cpio、shar等一起叫做archive文件,个人理解是归档,合成一个文件,后就可以用gzip、bz2、xz等工具进行压缩,同时也能方便在各个计算机间传输,有点类似windows下共享的zip文件。wiki上这个图比较形象,tar把零散的文件合拢,gzip把合拢的文件压缩。一、命令语法tar[选项…][FILE]…..

    2022年5月22日
    43
  • linux安装jdk环境(多种方式)

    linux安装jdk环境(多种方式)linux系统通用安装通过tar.gz压缩包安装此方法适用于绝大部分的linux系统1、先下载tar.gz的压缩包,这里使用官网下载。进入:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html勾选接受许可协议后选择对应的压缩包,下载完成后上传的linux…

    2022年10月28日
    0
  • keil5安装教程[通俗易懂]

    keil5安装教程[通俗易懂]keil5安装教程第一阶段:安装mdk第一阶段:安装mdk1、下载keil5的解压包,点击运行mdk514.exe文件2、在SetupMDK-ARMV5.14界面,点击Next3、勾选Iagree,点击Next4、自定义安装(1)记住界面弹出的默认安装的路径(2)点击Browse,选择自定义安装的位置,注意路径的命名尽量与默认路径的命名形式保持一致5、…

    2022年6月8日
    34
  • 谈Kong网关插件[通俗易懂]

    谈Kong网关插件[通俗易懂]转载李亚飞大佬的文章:https://www.lyafei.com/今天的一个重点就是要加强对KongAPIGateway网关的研究,对于Kong网关之前写过两篇文章,今天重点谈下Kong网关的插件支持能力。从上面图可以看到,Kong网关是基于OpenResty应用服务器,OpenResty是一个基于Nginx与Lua的高性能Web平台,其内部集成了大量精良的Lua库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态Web.

    2022年6月26日
    57
  • pycharm激活码2021【2021最新】[通俗易懂]

    (pycharm激活码2021)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html9ZHRNTE33T-eyJsaWNlbnNlSW…

    2022年3月28日
    70
  • django 项目部署详细教程 【uwsgi + nginx】「建议收藏」

    django 项目部署详细教程 【uwsgi + nginx】「建议收藏」django项目部署详细教程【uwsgi+nginx】

    2022年9月12日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号