webRequest不能从不同的用户工作

时间:2017-07-19 11:39:08

标签: c# .net networking httpwebrequest

我构建了一个小型winform应用程序,它使用一些API来发送短信, 当我在我的工作站上运行它与我的用户一切都很好,但如果我在我的工作站上运行它但作为不同的用户(用于更改用户在该exe文件shift +鼠标右键):

using (Stream requestStream = restRequest.GetRequestStream())

抛出异常

  

无法建立连接,因为目标计算机是主动的   拒绝if(ip address)

但是当我将应用程序复制到另一个用户工作站并尝试运行它时,它的工作正常并且对我的用户完全相同

问题是代码应该集成到使用服务器的应用程序,该服务器具有将发送短信的服务,而在iis应用程序池中的用户会抛出相同的异常

它会是什么?

我的简单代码:

JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
Dictionary<string, object> deserializedJsonDictionary;

HttpWebRequest restRequest;
WebResponse restResponse;

try
{
    string connectionParams = "{some json params for api...}";
    restRequest = (HttpWebRequest)WebRequest.Create(URI);
    restRequest.Method = Method; //post
    restRequest.ContentType = ContentType; // application/json

    using (Stream requestStream = restRequest.GetRequestStream())
    {
        byte[] inputStringBytes = Encoding.UTF8.GetBytes(connectionParams);
        requestStream.Write(inputStringBytes, 0, inputStringBytes.Length);
    }

    using (restResponse = restRequest.GetResponse())
    {
        using (Stream responseStream = restResponse.GetResponseStream())
        {
            StreamReader rdr = new StreamReader(responseStream, Encoding.UTF8);
            string Json = rdr.ReadToEnd();

            deserializedJsonDictionary = (Dictionary<string, object>)jsonSerializer.DeserializeObject(Json);
        }
    }
}
catch(Exception ex)
{
    throw ex;
}

1 个答案:

答案 0 :(得分:1)

我解决了问题

在我们公司,我们有代理连接到互联网

当我的用户登录时,他具有GPO所需的所有设置(包括代理) 当我试图与其他用户连接时,他根本就没有代理设置,那就是问题

我所做的只是在代码中添加代理:

WebProxy proxy = new WebProxy("[my proxy address]", [my proxy port number]);
proxy.BypassProxyOnLocal = false;
request.Proxy = proxy;