locked
.net信任级别为中级安全模式,如何调用WebService RRS feed

  • 问题

  • .net信任级别为中级安全模式,web_mediumtrust.cofig,如何调用WebService?

    现在调用被拒绝。

    安全性异常

    说明:
    应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请与系统管理员联系,或在配置文件中更改该应用程序的信任级别。


    异常详细信息: System.Security.SecurityException:
    请求“System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral,
    PublicKeyToken=b77a5c561934e089”类型的权限已失败。

    2013年1月24日 3:32

答案

  • 访问数据库、读取、写文件、删除文件都可以, 但是应该是不允许任何非本域名内其它访问。Webservice就是超出了本域名下操作了。。

    你可以写一个Console或Winform的程序,把访问 web service的代码运行一下,看能否访问,如果能,那就说明你部署的网站所使用的用户的权限不够,那么你就应该给你的网站设置一个权限较高的用户。
    2013年1月25日 3:11

全部回复

  • 你是宿主在IIS中的吧,参看这篇文章:

    http://blog.csdn.net/lzy_1515/article/details/7977883

    虽然这不是最恰当的方式。

    2013年1月24日 3:48
  • 不是Windows2008  暂时未解决。
    2013年1月24日 4:04
  • 不是Windows2008  暂时未解决。

    不是 Windows 2008 没关系,关键是你也是 IIS 宿主,那么这种问题是因为应用程序标识不具有网络访问权限造成的,因此你应该指定一个具有该权限的用户,或者为你的应用程序标识添加网络访问权限。
    2013年1月24日 5:10
  • 好的。谢谢了。

    2013年1月24日 5:56
  • .NET信任级别 中级安全模式 调用Webservice 下错误信息:

    System.Security.SecurityException: 请求“System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限已失败。 在 System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) 在 System.Security.CodeAccessPermission.Demand() 在 System.Net.HttpWebRequest..ctor(Uri uri, ServicePoint servicePoint) 在 System.Net.HttpRequestCreator.Create(Uri Uri) 在 System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase) 在 System.Net.WebRequest.Create(Uri requestUri) 在 System.Web.Services.Protocols.WebClientProtocol.GetWebRequest(Uri uri) 在 System.Web.Services.Protocols.HttpWebClientProtocol.GetWebRequest(Uri uri) 在 System.Web.Services.Protocols.SoapHttpClientProtocol.GetWebRequest(Uri uri) 在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) 在 com.iscall.web.LinkWS.Send2(String CorpID, String Pwd, String Mobile, String Content, String Cell, String SendTime) 在 amsg.Button1_Click(Object sender, EventArgs e) 失败的操作是: Demand 失败的第一个权限的类型是: System.Net.WebPermission 失败的程序集的区域是: MyComputer   

    有没有可能继续在 .NET信任级别 中级安全模式 调用Webservice ?

    2013年1月24日 15:40
  • 你的网站能访问数据库吗?能读取、写入本地磁盘吗?
    2013年1月25日 1:23
  • 访问数据库、读取、写文件、删除文件都可以, 但是应该是不允许任何非本域名内其它访问。Webservice就是超出了本域名下操作了。。
    2013年1月25日 3:09
  • 访问数据库、读取、写文件、删除文件都可以, 但是应该是不允许任何非本域名内其它访问。Webservice就是超出了本域名下操作了。。

    你可以写一个Console或Winform的程序,把访问 web service的代码运行一下,看能否访问,如果能,那就说明你部署的网站所使用的用户的权限不够,那么你就应该给你的网站设置一个权限较高的用户。
    2013年1月25日 3:11
  • 好吧,问题到此吧,总权限必须中级安全模式, 比较难再次细节分配权限,网站转移到 FULL级信任模式好了。
    2013年1月25日 3:21