none
调用ConfigMgr2012 的WebService 时出现 401: Unauthorized 报错 RRS feed

  • 问题

  • 企业里利用SCCM ConfigMgr 2012,想要自定义一些Application Catalog的功能,就利用了Application Catalog的web service,参照了下面的链接。

    extending-the-application-catalog-in-system-center-2012-configuration-manager

    但是在调用到 GetApplications 方法的时候, 出现了401的错误。

    The request failed with HTTP status 401: Unauthorized.

    请问是什么原因。十分感谢

    2018年8月2日 5:48

全部回复

  • 你好,

    根据你的错误信息,应该是ConfigMgr 2012 是需要授权的,你没有得到ConfigMgr 2012的授权,你可以检查一下IIS 的SMS_DP_SMSPKG$ Windows Authentication 有没有开启(Enabled)


    Best regards,

    Zhanglong


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年8月3日 1:38
    版主
  • 您好,感谢您的回复。

    我没有找到您说的IIS 的SMS_DP_SMSPKG路径,但是在IIS的设置里,把Authentication下面的Windows Authentication从Disable选到Enable了,问题仍然存在。

    于是我尝试把Anonymous Authentication调为Enable了,并且里面编辑为Application pool identity了。

    这种状况下,401的问题没有了,请问这个solution可以用吗?

    然后,程序又报另一个错误。

    System.Web.Services.Protocols.SoapException was unhandled by user code
      Actor=""
      HResult=-2146233087
      Lang=""
      Message=System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.ServiceModel.FaultException`1[Microsoft.ConfigurationManager.SoftwareCatalog.Service.Faults5000.ValidationFault]: A parameter is invalid

    代码里我使用的是

    int i = 0;
    AppDetailView[] apps = client.GetApplications(
        ApplicationProperty.Name,
        null,
        ApplicationProperty.Name,
        "",
        20,
        0,
        true,
        ApplicationClassicDisplayName.PackageProgramName,
        false,
        null,
        out i);

    由于Log里面也没有明确的说是哪个参数有问题,所以您能不能帮我看看这个方法使用上有什么问题。

    十分感谢!

    Best Regards,

    Xiaohang

    2018年8月14日 3:34