C#WebService服务在Windows7的部署

(一)C#WebService服务在Windows7的部署 

一、在控制面板,程序与卸载中安装IIS组件。

 二、IIS无法显示WebService的.asmx文件。解决办法:注:(这里可以不用考虑,直接参考:后面节:遭遇“HTTP 错误 500.19 无法访问请求的页面,因为该页的相关配置数据无效。”

1、如果你是先安装的vs后再安装的IIS的话先注册一下IIS:

命令行转到目录:C:WindowsMicrosoft.NETFrameworkv2.0.50727 下执行命令:使用VS的命令行,输入命令:aspnet_regiis -i,重新注册.net环境。

2、如果命令行运行提示出错,可尝试用管理员身份运行(win7)。

 

 更新完后,IIS配置的应用程序池的.NetFramework版本为v4.0。

 三、进入IIS管理器选择建立或选择一个网站,再右键添加虚拟目录,将物理路径指向你的WebService工程,完成后选择虚拟目录右键执行“转为应用程序”操作,浏览:http://localhost/虚拟目录的别名/Service.asmx,页面显示调用的方法。

四、部署IIS

1、添加站点

 

2、添加虚拟目录

 

3、转换为应用程序

 

4、点击确定。

 

5、修改“默认文档”.

 

6、添加 *.asmx文件

 

7、选中webservice 应用程序,点击右侧的浏览即可。

 

五、设置URL地址

1、去除.asxm后缀也能调用,例如:

正常的调用方法为:http://localhost/WebServiceServer/WebService1.asmx

要改为:http://localhost/WebServiceServer/WebService1?wsdl

(1)    在webservice服务创建时,添加Global.asax全局文件。

(2)    打开Global.asax文件,添加代码:

protected void Application_BeginRequest(object sender, EventArgs e)

        {

            string path = Request.Url.ToString();

            path = Request.Url.LocalPath.ToString();

            if (!path.Contains("/WebService1.asmx"))

            {

                if (path.Contains("/WebService1"))

                {

                    Context.RewritePath(path.Replace("/WebService1", "/WebService1.asmx"));

                }

            }

        }

六、新建站点

1、

2、

3、

4、

参考资料:

1、http://blog.sina.com.cn/s/blog_6abb49260100lc8z.html

2、http://www.doc88.com/p-418980892612.html

3、http://q.cnblogs.com/q/54872/

4、http://blog.sina.com.cn/s/blog_585657900100036h.html

转自:https://www.cnblogs.com/czhelp/p/3980614.html

(二)遭遇“HTTP 错误 500.19 无法访问请求的页面,因为该页的相关配置数据无效。”

解决方法:

控制面板-->程序和功能-->打开或关闭windows功能-->角色

的这里,如果还未安装“web服务器(IIS)”,则选择“添加”。

如果已经安装了,则选择“web服务器(IIS)”-->添加角色服务。

选择“应用程序开发(已安装)”-->“ASP.NET”。注:勾选这个就可以了

win7下为

查看网页错误,请看这篇文章https://www.cnblogs.com/liushui-sky/p/10522361.html

另其他类似错误一:

HTTP Error 500.19 - Internal Server Error
配置错误: 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的 (overrideModeDefault="Deny"),或者是通过包含 overrideMode="Deny" 或旧有的 allowOverride="false" 的位置标记明确设置的。

出现这个错误是因为 IIS 7 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改。要取消锁定可以运行命令行 %windir%system32inetsrvappcmd unlock config -section:system.webServer/handlers 。其中的 handlers 是错误信息中红字显示的节点名称。

如果modules也被锁定,可以运行%windir%system32inetsrvappcmd unlock config -section:system.webServer/modules

另外,如果使用Asp.net的朋友,在安装IIS7的时候一定记得勾选Asp.net,默认不选,也会出现类似的错误信息 

另其他类似错误二:

HTTP 错误 500.19 - Internal Server Error
无法访问请求的页面,因为该页的相关配置数据无效。

详细错误信息模块 IIS Web Core 
通知 BeginRequest 
处理程序 尚未确定 
错误代码 0x80070005 
配置错误 由于权限不足而无法读取配置文件 

原文件夹,右击选择它的属性,打开“安全”选项卡,看到“组或用户 名”,单击“编辑”按钮添加一个新的用户名“Everyone”,然后更改它的权限,将第二个权限“修改”设置为允许就可以了。

转自:https://www.cnblogs.com/delphinet/archive/2010/03/25/1694960.html

(三)IIS网站本机可以访问,局域网其他机器无法访问

  1. 【开始】打开【控制面板】,选择【WINDOWS 防火墙】,进入

  2.  

    在防火墙界面,选择左侧边栏的【高级设置】

     
  3.  

    在弹出的高级安全Windows防火墙界面中,选择左侧边栏的【入站规则】,然后在右侧边栏选择【新建规则】

  4.  

    在弹出的窗口中完成如下操作:

    1.选择【端口】,下一步;

    2.选择【TCP】以及【特定本地端口】,填入要开放的端口号(或开放所有端口,可以以逗号分隔多个端口),下一步;

    3.【允许连接】,下一步;

    4. 网络类型全部勾选,下一步;

    5.【名称】中填入自定义名称,如:IIS 【完成】。

    END

注意事项

  • 在防火墙完全关闭的情况下,此法无效,无需设置开放端口

注:最简单的办法就是关闭防火墙就可以了。

转自:https://jingyan.baidu.com/article/335530da89540a19cb41c3cb.html

原文地址:https://www.cnblogs.com/liushui-sky/p/10319327.html