条件:
1、开启IIS服务
2、VS创建Web解决方案、并发布。
3、IIS创建网站服务,并配置。
4、VS创建WPF解决方案,并添加服务引用,用于调用服务中的方法。
5、其它方法调用服务
https://blog.csdn.net/han_better/article/details/81368433
https://www.cnblogs.com/Brambling/p/6815565.html
1、开启IIS服务
我们主要用IIS服务来部署我们在windows系统上的互联网服务,比如部署.net工程,ftp服务器等等。
在win7和win10上开启IIS服务的方式基本一致,这里我们使用win7来演示IIS服务的安装。
1、安装IIS服务
a、点击开始->控制面板
b、将控制面板的查看方式 设置为小图标,这样可以展示更多的内容,否则可能看不到。点击默认程序。
c、选择程序和功能
d、选择打开或关闭windows功能
e、Internet信息服务->web管理工具,万维网服务全部勾选,Web管理工具全选,FTP服务也可以全选。
f、等待安装
g、点击控制面板->管理工具
h、双击Internet信息服务(IIS)管理器,就可以打开IIS服务的配置界面了。
i,验证IIS是否正确安装,等待几分钟后IIS配置完成在浏览器输入http://localhost/iisstart.htm若出现下面的图标说明IIS安装成功
j.若果IIS安装不成功,会出现如下错误界面,解决该错误的方法参照
http://blog.csdn.net/mazhaojuan/article/details/10041553
若出现错误,参照:http://m.blog.csdn.net/blog/u011534341/44925473
2、VS创建Web解决方案、并发布。
1、创建项目,注意.NET版本。
2、在项目中添加一个WebService项
3、内容如下
4、创建我们自己的方法
5、生成成功后,点击发布
6、自定义,创建名称
7、选择文件服务,选择发布的路径,
8、点击发布
9、打开IIS,新建网站,新建程序池。
写好网站名后,程序池默认与其同名,需要将程序池的.NET版本版本改成与服务一致,在高级设置中,启用32位应用程序;
身份验证,也要写,电脑的用户名与密码,这样其它电脑才能访问。
10、调用网站设置。启用目录。
iis 7上发布mvc报错:403.14-Forbidden Web 服务器被配置为不列出此目录的内容
提示里面的解决方法是:
- 如果不希望启用目录浏览,请确保配置了默认文档并且该文件存在。
- 使用 IIS 管理器启用目录浏览。
- 打开 IIS 管理器。
- 在“功能”视图中,双击“目录浏览”。
- 在“目录浏览”页上,在“操作”窗格中单击“启用”。
- 确认站点或应用程序配置文件中的 configuration/system.webServer/directoryBrowse@enabled 特性被设置为 True。
按照该方法改后 ,发现网页运行界面进去的变成了目录结构,后来发现改配置文件web.config配置文件的配置节后,网站就可以正常使用了,记录下哦。
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>要设置<modules>节的值为true, 而目录浏览启用或禁用其实都没影响的。
如果上边的方法还么有效果,以管理员身份打开cmd,运行C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i,
重新注册.NET Framework
主要原因可能是 .net framework版本不一致,iis7只有4.0
至此服务发布成功。
下面是通过POST与GET方法调用服务
https://www.cnblogs.com/weicanpeng/p/5755987.html
POST
服务方法:
调用方法:
public static string PostWebService(String URL, String MethodName, string ht)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL + "/" + MethodName);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
// 凭证
request.Credentials = CredentialCache.DefaultCredentials;
//超时时间
request.Timeout = 10000;
var PostStr = ht;
byte[] data = System.Text.Encoding.UTF8.GetBytes(PostStr);
request.ContentLength = data.Length;
Stream writer = request.GetRequestStream();
writer.Write(data, 0, data.Length);
writer.Close();
var response = request.GetResponse();
var stream = response.GetResponseStream();
StreamReader sr = new StreamReader(stream, Encoding.UTF8);
String retXml = sr.ReadToEnd();
sr.Close();
return retXml;
}
GET
public string WEBPOST(string url)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.Timeout = 10000;
request.Credentials = CredentialCache.DefaultCredentials;
request.ContentType = "application/xml;charset=UTF-8";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
catch (Exception ex)
{
return "";
}
}