首页 > 编程 > C# > 正文

在C++中调用C#webservice的例子

2023-05-20 20:22:28
字体:
来源:转载
供稿:网友

本文给出了一个在C++中调用C# WEB Service的例子,如果有什么错误,请指出。

首先把c#的webservice给出来:

namespace SecurityWebService
{
    public struct SecurityInfo 
     { 
          public string Code; 
          public string CompanyName; 
          public double Price; 
     } 
      public class Service1 : System.Web.Services.WebService
     {
          private SecurityInfo Security;

          public Service1() 
          { 
               Security.Code = ""; 
               Security.CompanyName = ""; 
               Security.Price = 0; 
          }

          private void AssignValues(string Code) 
          { 
               Security.Code = Code; 
               Security.CompanyName = Code + " Pty Ltd"; 
               Random RandomNumber = new System.Random(); 
               Security.Price = double.Parse(new System.Random(RandomNumber.Next(1,10)).NextDouble().ToString("##.##")); 
          }

          [WebMethod(Description="dgdfgfdgdfgfdg",EnableSession=false)] 
          public SecurityInfo GetSecurityInfo(string Code) 
          { 
               AssignValues(Code); 
               SecurityInfo SecurityDetails = new SecurityInfo(); 
               SecurityDetails.Code = Security.Code; 
               SecurityDetails.CompanyName = Security.CompanyName; 
               SecurityDetails.Price = Security.Price; 
               return SecurityDetails; 
          }     
     }

然后新建个vs.net项目,在该项目里添加上面的webservice,名字空间就默然为localhost.

然后在cpp文件中添加#include "localhost.h"; using namespace localhost;

最后可以在.h文件文件加上点击事件:

private: System::Void button1_Click(System::Object *  sender, System::EventArgs *  e)
        { 
              localhost::Service1 * jj = new localhost::Service1; 
              localhost::SecurityInfo *cc = jj->GetSecurityInfo("111");
              textBox1->Text = cc->Code;
              textBox2->Text = cc->CompanyName;
              textBox3->Text = Convert::ToString(cc->Price);
    }

运行后会出现 请求因 HTTP 状态 401 失败:Access Denied 的错误。

最后我在iis信息服务器上把匿名访问和允许iis控制密码给勾上以后就好用了,究竟为什么,希望路过者给出建议?

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表