IIS配置网站(WebServices),局域网都能访问

IIS配置网站(WebServices),局域网都能访问

前言

上篇说到在本机创建一个WebServices,用控制台应用程序调用WebServices的SayHello方法。

http://www.cnblogs.com/xw-yanger/p/3434297.html

今天说说把WebServices放到服务器(本机作为服务器)上,让局域网其他机子也能访问到。

跟上期一样,这次写了一个上传图片到服务器的WebServices

创建WebServices

 

代码也很简单,一个上传,一个下载:

//上传

[WebMethod]

        public bool Up(byte[] data, string filename)

        {

            try

            {

                FileStream fs = File.Create("E:\" + filename);

                fs.Write(data, 0, data.Length);

                fs.Close();

                return true;

            }

            catch

            {

                return false;

            }

        }

        //下载

        [WebMethod]

        public byte[] Down(string filename)

        {

            string filepath = Server.MapPath("E:\") + filename;

            if (File.Exists(filepath))

            {

                try

                {

                    FileStream s = File.OpenRead(filepath);

                    return ConvertStreamToByteBuffer(s);

                }

                catch

                {

                    return new byte[0];

                }

            }

            else

            {

                return new byte[0];

            }

        }

写好之后,发布(详见上篇文章)

创建应用程序调用UpDownFileByWebServices

 

两button,一个textBox,一个openFileDialog1

 

Open单击事件代码:

string filter = "图片文件(*.jpg,*.gif,*.bmp)|*.jpg;*.gif;*.bmp";

            openFileDialog1.Filter = filter;

            if (openFileDialog1.ShowDialog() == DialogResult.OK)

            {

                textBox1.Text = openFileDialog1.FileName;

                //pictureBox1.Image = Image.FromFile(textBox1.Text);

            }

UpLoad单击事件代码:

//保存到远程服务器

            FileStream s = new FileStream(textBox1.Text, FileMode.OpenOrCreate);

            UpDownFile.Service1 client = new UpDownFile.Service1();

            client.Up(ConvertStreamToByteBuffer(s),"test.jpg");

 

将Stream流转换为byte数组的方法

 

//将Stream流转换为byte数组的方法

public byte[] ConvertStreamToByteBuffer(Stream s)

        {

            MemoryStream ms = new MemoryStream();

            int b;

            while ((b = s.ReadByte()) != -1)

            {

                ms.WriteByte((byte)b);

            }

            return ms.ToArray();

        }

 

OK,代码写好之后,再配置网站,让WebServices跑起来,这样才能访问,而且配置很关键,注意方法。

添加网站

打开IIS,新建一个网站:

 


这里注意:主机名配置的是本机的局域网IP(我在这纠结了好久才弄好的)。

这里配置好之后启动网站,现在想让局域网能访问,我们还差最后一步:配置防火墙

配置防火墙

网上有方法 http://hi.baidu.com/xyrrwcom/item/93043153b966a1978d12edee

这里我也贴出来,这是win7的,XP的百度找找看。

1、开始---所有程序---管理工具---高级安全 Windows 防火墙。
2、在高级安全 Windows 防火墙的左边栏;选择“入站规则”。
3、在右边栏选择"新建规则“。
4、在弹出的窗口依次选择:选中端口---下一步---选中TCP以及特定本地端口;
5、填入要开放的端口号(这里填入80;当让也可以选择开放所有端口
6、下一步---选中允许连接---下一步---选中所有选项---下一步---填入名称(这里填入IIS)。
完毕。

至此,应该就没什么问题了,把exe文件放到别的机子上运行试试,然后在看本机E盘下面是不是有一个test.jpg文件了。

 

原文地址:https://www.cnblogs.com/xw-yanger/p/3436884.html