远程Azure服务器返回NotFound错误(未授权)

时间:2013-02-03 12:39:43

标签: azure reporting-services windows-phone-7.1 azure-virtual-machine

我在Azure上创建了一个虚拟机,其上安装了Windows Server 2012和SQL Server 2012。此外,我已打开入站端口80和1433在vm上打开。

我创建了一个数据库和报告(rdl)并部署到服务器。

当我编写一个简单的WinForms应用程序时,它能够呈现托管在vm的ReportServer上的报告。

现在我正在编写一个WP7应用程序来与远程服务器进行通信和获取xml。这次我收到了一个错误:

  

远程服务器返回错误:NotFound

     

InnerException:System.Net.HttpStatusCode.Unauthorized

我不确定问题出在哪里;我是否需要从服务器端做任何事情?

客户端

以下是我的配置和代码:

1)我已经在this post中提到了对报表服务器的服务引用,下面是ServiceReferences.ClientConfig文件:

<configuration>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="ReportExecutionServiceSoap" maxBufferSize="2147483647"
                    maxReceivedMessageSize="2147483647">
                    <security mode="None" />
                </binding>
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://virtualmachine.cloudapp.net:80/ReportServer/ReportExecution2005.asmx"
                binding="basicHttpBinding" bindingConfiguration="ReportExecutionServiceSoap"
                contract="ServiceReference1.ReportExecutionServiceSoap" name="ReportExecutionServiceSoap" />
        </client>
    </system.serviceModel> </configuration>

2)下面是我的代码:

void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    ReportExecutionServiceSoapClient client = new ReportExecutionServiceSoapClient();
    client.LogonUserCompleted += new EventHandler<System.ComponentModel.AsyncCompletedEventArgs>(client_LogonUserCompleted);
    client.LogonUserAsync("username", "password", "virtualmachine.cloudapp.net");
}

此处用户名是“管理员”,我用它来登录虚拟机。这会有问题吗?

服务器端

以下是我的Reportserver \ web.config

<authentication mode="Windows" />
<identity impersonate="true" />

以下是我的Reportserver \ rsreportserver.config

<Authentication>
    <AuthenticationTypes>
            <RSWindowsNTLM/>
    </AuthenticationTypes>
<RSWindowsExtendedProtectionLevel>Off</RSWindowsExtendedProtectionLevel>
<RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario>
<EnableAuthPersistence>true</EnableAuthPersistence>

1 个答案:

答案 0 :(得分:0)

尝试登录您的windows.azure.com帐户并选择虚拟机,然后选择顶部的终端链接。

确保添加端点,例如:

名称:ReportsEndpoint

协议:TCP

公共港口:80

私人港口:80