就像我现在服务器是虚拟机,win系统、里面开着iis弄的、
现在我想把这个服务器改为Linux怎么做,也没有什么办法可以让Linux也是用这个webservice

解决方案 »

  1.   

    代码移到.NetCore下编译就可以了
      

  2.   

    1#正解,不过我还没玩过.net core
      

  3.   

    学习编程需要教程。但是学习把c#代码copy到另外一个工程里(net core工程里)不是很复杂,不需要教程,自己搜索介绍。
      

  4.   

    不对不对我的目的是:Linux里放着webservice随后让win里的c#访问这个webservice
      

  5.   

    linux中还是使用成熟的java方案,提供webservice。ws是通用的,客户端调用就随意用什么语言了。
      

  6.   

    那我现在写的这个ws怎么办就重写么 有没有什么可以让Linux部署我目前这个ws的办法啊
      

  7.   

    wine支持,虚拟机,或者用webkit改写
      

  8.   

    那我是不是可以直接用wine安装好.netframework和iis并且直接用iis开啊?
      

  9.   

    1#正解,正好在玩.net core
      

  10.   

    .net core 没有之一
      

  11.   

    .net core
    mono这两个是直接布置的可商用解决方案,布置和使用难度不会比其他方法做的大,如果能移植.net core当然最好最快,不能可以用mono。
      

  12.   


    那就是说我直接用.net core重写webservice么;现在我在.net core里写可是提示system.web.services没有
      

  13.   


    那就是说我直接用.net core重写webservice么;现在我在.net core里写可是提示system.web.services没有mono你不用重写,你就直接在服务器安装mono,然后把你的项目拿到mono的编辑器里面,发布一下,复制到linux服务器,然后就行了。
      

  14.   


    那就是说我直接用.net core重写webservice么;现在我在.net core里写可是提示system.web.services没有mono你不用重写,你就直接在服务器安装mono,然后把你的项目拿到mono的编辑器里面,发布一下,复制到linux服务器,然后就行了。
    我VM里的ubuntu里已经安装好了nginx,也安装好了monodevelop,想发布一个webservice给自己,但是怎么才能发布,如果我直接monodevelop选择release,虚拟机上会出现127.0.0.1:8080的一个Default的网页,但是我主机找不到这个面,而且只能选nginx的80端口,出现的是welcome nginx,(此外,我nginx如果配置成8080口,那么monodevelop就没办法release或者debug了),那我究竟应该怎么做才能出这个webservice;我找不到浅显易懂的教程,哪儿有教发布的贴。
      

  15.   

    移到core 上去啊 
      

  16.   

    可是.core里我找不到什么项目里可以新建一个webservice哎、哪里有webservice.asmx这个文件呢
      

  17.   

    安装一个vs2017,里面有.Core,建立一个.Core项目,然后将原来的代码复制,生成Linux下的
      

  18.   


    可是如果我把webervice.asmx.cs里的东西照抄到Program.cs里就会有一大堆红字呀、头文件里的using System.Web.Services;using System.Web.Services.Protocols;都不可以,这样我下面的很多东西都不行了呀
      

  19.   


    可是如果我把webervice.asmx.cs里的东西照抄到Program.cs里就会有一大堆红字呀、头文件里的using System.Web.Services;using System.Web.Services.Protocols;都不可以,这样我下面的很多东西都不行了呀根据红字提示,在“引用”里添加dll,并using相关类型
      

  20.   


    可是如果我把webervice.asmx.cs里的东西照抄到Program.cs里就会有一大堆红字呀、头文件里的using System.Web.Services;using System.Web.Services.Protocols;都不可以,这样我下面的很多东西都不行了呀根据红字提示,在“引用”里添加dll,并using相关类型
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.IO;
    using System.Security.Cryptography;
    namespace WebApplication1
    {    /// <summary>
        /// WebService1 的摘要说明
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
        // [System.Web.Script.Services.ScriptService]
        public class WebService1 : System.Web.Services.WebService
        {
            [WebMethod(Description = "上传去的路径")]
            private string FilePath(string fileName)
            {
                string serverPath = Path.Combine(Server.MapPath("") + @"\Upload\");            if (!Directory.Exists(serverPath))//存在么
                    Directory.CreateDirectory(serverPath);//新建一个            return Path.Combine(Server.MapPath("") + @"\Upload\" + Path.GetFileName(fileName));
            }        [WebMethod]
            public string HelloWorld()
            {
                return "Hello World";
            }
            [WebMethod(Description = "创建文件")]
            public bool CreateFile(string fileName)
            {
                bool isCreate = true;
                try
                {                FileStream fs = new FileStream(FilePath(fileName), FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
                    fs.Close();
                }
                catch
                {
                    isCreate = false;
                }            return isCreate;
            }
            [WebMethod(Description = "附加文件流")]
            public bool Append(string fileName, byte[] buffer)
            {
                bool isAppend = true;
                try
                {
                    FileStream fs = new FileStream(FilePath(fileName), FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
                    fs.Seek(0, SeekOrigin.End);
                    fs.Write(buffer, 0, buffer.Length);
                    fs.Close();
                }
                catch
                {
                    isAppend = false;
                }
                return isAppend;
            }        [WebMethod(Description = "验证文件是否一致")]
            public bool Verify(string fileName, string md5)
            {
                bool isVerify = true;
                try
                {
                    string md5Str = "";                FileStream fs = new FileStream(FilePath(fileName), FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
                    MD5CryptoServiceProvider md5Temp = new MD5CryptoServiceProvider();
                    byte[] md5Buffer = md5Temp.ComputeHash(fs);
                    fs.Close();                List<string> strList = new List<string>();
                    for (int i = 0; i < md5Buffer.Length; i++)
                    {
                        md5Str += md5Buffer[i].ToString("x2");
                    }                if (md5 != md5Str)
                    {
                        isVerify = false;
                    }
                }
                catch
                {
                    isVerify = false;
                }            return isVerify;
            }        [WebMethod(Description = "下载来的路径")]
            private string FilePath2(string fileName)
            {
                string serverPath = Path.Combine( @"D:\Download\");            if (!Directory.Exists(serverPath))
                    Directory.CreateDirectory(serverPath);            return Path.Combine(@"D:\Download\" + Path.GetFileName(fileName));
            }
            [WebMethod(Description = "创建文件")]
            public bool CreateFile2(string fileName)
            {
                bool isCreate = true;
                try
                {                FileStream fs = new FileStream(FilePath2(fileName), FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
                    fs.Close();
                }
                catch
                {
                    isCreate = false;
                }            return isCreate;
            }        [WebMethod(Description = "附加文件流")]
            public bool Append2(string fileName, byte[] buffer)
            {
                bool isAppend = true;
                try
                {
                    FileStream fs = new FileStream(FilePath2(fileName), FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
                    fs.Seek(0, SeekOrigin.End);
                    fs.Write(buffer, 0, buffer.Length);
                    fs.Close();
                }
                catch
                {
                    isAppend = false;
                }
                return isAppend;
            }        [WebMethod(Description = "验证文件是否一致")]
            public bool Verify2(string fileName, string md5)
            {
                bool isVerify = true;
                try
                {
                    string md5Str = "";                FileStream fs = new FileStream(FilePath2(fileName), FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
                    MD5CryptoServiceProvider md5Temp = new MD5CryptoServiceProvider();
                    byte[] md5Buffer = md5Temp.ComputeHash(fs);
                    fs.Close();                List<string> strList = new List<string>();
                    for (int i = 0; i < md5Buffer.Length; i++)
                    {
                        md5Str += md5Buffer[i].ToString("x2");
                    }                if (md5 != md5Str)
                    {
                        isVerify = false;
                    }
                }
                catch
                {
                    isVerify = false;
                }            return isVerify;
            }    }
    }
    我的webservice,很多我也找不到可以引用的地方
      

  21.   

    dotnet new webapi,.net core通过这种方式建立新的Web Api程序,建立好后用vs打开写代码就行了。跟以前可能会稍微有一些变化。
      

  22.   

    我不太理解这句话:代码移到.NetCore下编译就可以了
    webservice在windows里用IIS,到linux下用什么?
      

  23.   


    可是如果我把webervice.asmx.cs里的东西照抄到Program.cs里就会有一大堆红字呀、头文件里的using System.Web.Services;using System.Web.Services.Protocols;都不可以,这样我下面的很多东西都不行了呀根据红字提示,在“引用”里添加dll,并using相关类型
    生成.core项目后,在linux里使用什么发布webservice呢
      

  24.   


    可是如果我把webervice.asmx.cs里的东西照抄到Program.cs里就会有一大堆红字呀、头文件里的using System.Web.Services;using System.Web.Services.Protocols;都不可以,这样我下面的很多东西都不行了呀根据红字提示,在“引用”里添加dll,并using相关类型
    生成.core项目后,在linux里使用什么发布webservice呢用nginx啊,只不过.net core库和framework有一点点区别,代码要少量改动,基本上移植很容易的
      

  25.   


    直接再vs中引用服务中,引入你在linux中布局的ip及名称就好了啊。