wcf 如何发布到 IIS 6 的 公网.我怎么做也发布不鸟.

生财 2008-11-17 01:15:31
wcf 如何发布到 IIS 6 的 公网.我怎么做也发布不鸟.
只能发布到 Local下.选程访问就不行了
...全文
311 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
生财 2008-11-17
  • 打赏
  • 举报
回复
有没有更简单的方法呢这个好难啊
生财 2008-11-17
  • 打赏
  • 举报
回复
谢谢各位热心的朋友....
qinhl99 2008-11-17
  • 打赏
  • 举报
回复
这里有和你遇到同样问题的朋友
http://topic.csdn.net/u/20080623/18/8fa909d4-3ba6-423c-8ec9-b23919b462d1.html

你可以服务器和开发机等需要的地方的hosts表加一条机器名对公网/内网IP的记录,或者使用svcutil.exe 工具生成代理文件,然后客户开发机使用代理文件开发,new Uri参数直接写IP。


今天找了一个笨办法,搞定了这个事情,用disco.exe生成svc对应的wsdl和xsd文件,然后将里面的机器名改为固定ip地址,对其中的链接地址也要改,例如生成时可能是http://jason/JYLXIIS/IBaseSettingManager.svc?xsd=xsd2,那么首先把“jason”改为xx.xx.xx.xx,然后把IBaseSettingManager.svc?xsd=xsd2改为IBaseSettingManager.xsd,这些映射关系在disco产生的文件中有一个results.discomap文件中有详细的说明。最后把这些改好的文件放入到iis的虚拟目录下,改动一下web.config文件,在behavior节中增加externalMetadataLocation="http://xx.xx.xx.xx/Platform/BaseSettingManager.wsdl"这个扩展元数据地址,就可以了。美中不足的是以前我用一个Behavior就可以了,现在我不得不为每个endpoint来建立一个对应的behavior。
谢谢isline的回复。
qinhl99 2008-11-17
  • 打赏
  • 举报
回复
http://developer.51cto.com/art/200810/91601_8.htm
生财 2008-11-17
  • 打赏
  • 举报
回复
这个怎么配呢.我配了都不能在公网访问呢
生财 2008-11-17
  • 打赏
  • 举报
回复
			<service behaviorConfiguration="WcfTest.Service1Behavior" name="WcfTest.Service1">
<endpoint address="*" binding="basicHttpBinding" contract="WcfTest.Service1"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
生财 2008-11-17
  • 打赏
  • 举报
回复
			<service behaviorConfiguration="WcfTest.Service1Behavior" name="WcfTest.Service1">
<endpoint address="*" binding="basicHttpBinding" contract="WcfTest.Service1"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
  • 打赏
  • 举报
回复
你是以httpbinding方式发布的吗?

只有这个http的binding才能在公网里使用。TCP的在公网应该不行,会被防火墙拦掉的,除非你的机器全裸在公网上。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧