0

http経由でファイルをアップロードするWebサービスを作成しましたが、最初の試行では失敗します。

Webサービスは、ローカルコンピューターのIIS 7で、ASP.NET4統合アプリプールの下で実行されています。これが私のWebサービスのweb.configです。

<?xml version="1.0"?>
<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>

  <system.serviceModel>

    <behaviors>

      <serviceBehaviors>

        <behavior>
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>

        <behavior name="TransferServiceBehavior">
          <dataContractSerializer maxItemsInObjectGraph="2147483647" />
          <serviceThrottling maxConcurrentCalls="500"
                             maxConcurrentSessions="500" maxConcurrentInstances="500" />  
        </behavior>

      </serviceBehaviors>

    </behaviors>

    <bindings>
      <basicHttpBinding>
        <binding name="TransferService" maxReceivedMessageSize="2147483647"
                 maxBufferSize="2147483647" transferMode="Streamed">
          <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" 
                        maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
          <security mode="None">
            <transport clientCredentialType="None" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>

    <services>

      <service behaviorConfiguration="TransferServiceBehavior" name="TransferService">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="TransferService"
                contract ="ITransferService">
        </endpoint>
      </service>

    </services>

    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />

  </system.serviceModel>

 <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

  <system.web>
    <!--<httpRuntime maxRequestLength="2097151" />-->
    <httpRuntime maxRequestLength="2097151" 
                 useFullyQualifiedRedirectUrl="true" executionTimeout="14400"   />
  </system.web>

</configuration>

これはクライアントのweb.configファイルです。

<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
        <httpRuntime maxRequestLength="2097150" />
    </system.web>

    <system.serviceModel>

        <bindings>
            <basicHttpBinding>
              <binding name="BasicHttpBinding_ITransferService" closeTimeout="04:01:00"
                  openTimeout="04:01:00" receiveTimeout="04:10:00" sendTimeout="04:01:00"
                  allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                  maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
                  messageEncoding="Text" textEncoding="utf-8" transferMode="Streamed"
                  useDefaultWebProxy="true">
                <readerQuotas maxDepth="128" maxStringContentLength="2147483647" maxArrayLength="2147483647"
                    maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
                <security mode="None">
                  <transport clientCredentialType="None" proxyCredentialType="None"
                      realm="" />
                  <message clientCredentialType="UserName" algorithmSuite="Default" />
                </security>
              </binding>
            </basicHttpBinding>
        </bindings>

        <client>
            <endpoint address="http://localhost:81/TransferService.svc" binding="basicHttpBinding"
                bindingConfiguration="BasicHttpBinding_ITransferService" contract="TransferService.ITransferService"
                name="BasicHttpBinding_ITransferService" />
        </client>

    </system.serviceModel>
</configuration>

これが私が受け取るエラーです。

リモートサーバーがエラーを返しました:(400)不正な要求。

説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとエラーがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。

例外の詳細:System.Net.WebException:リモートサーバーがエラーを返しました:(400)不正な要求。

ソースエラー:

120行目:
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] 121行目:
FileUploadWcfServiceClient.TransferService.UploadFileResponse FileUploadWcfServiceClient.TransferService.ITransferService.UploadFile(FileUploadWcfServiceClient.TransferService.RemoteFileInfo request){122行目:returnbase.Channel .UploadFile(request); 123行目:} 124行目:

ソースファイル:C:\ Apps \ FileUploadWcfService \ FileUploadWcfServiceClient \ Service References \ TransferService \ Reference.cs行:122

スタックトレース:

[WebException:リモートサーバーがエラーを返しました:(400)不正な要求。] System.Net.HttpWebRequest.GetResponse()+6111059
System.ServiceModel.Channels.HttpChannelRequest.WaitForReply(TimeSpan timeout)+48

[ProtocolException:リモートサーバーが予期しない応答を返しました:(400)不正な要求。]
System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg、IMessage retMsg)+9456095
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke( MessageData&msgData、Int32 type)+345
FileUploadWcfServiceClient.TransferService.ITransferService.UploadFile(RemoteFileInfo request)+0
FileUploadWcfServiceClient.TransferService.TransferServiceClient.FileUploadWcfServiceClient.TransferService.ITransferService.UploadFile(RemoteFileInfo request)in C:\ Apps \ FileUploadWcf \ TransferService \ Reference.cs:122
FileUploadWcfServiceClient.Default.Button1_Click(Object sender、EventArgs e)in C:\ Apps \ FileUploadWcfService \ FileUploadWcfServiceClient \ Default.aspx.cs:85 System.Web.UI.WebControls.Button.OnClick(EventArgs e)+118System.Web
。 UI.WebControls.Button.RaisePostBackEvent(String eventArgument)+112
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)+10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl 、String eventArgument)+13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)+36 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint、Boolean includeStagesAfterAsyncPoint)+5563

バージョン情報:Microsoft .NET Frameworkバージョン:4.0.30319; ASP.NETバージョン:4.0.30319.225

アップロードしようとしているファイルは217KBなので、ここではファイルサイズは問題ではないと思います。

エラーの原因は何だと思いますか?

4

0 に答える 0