0

我有一个 Windows 应用商店应用程序,在这个应用商店应用程序中,我有一个文本框,用户输入信息然后发送到我的 WCF 服务。

现在问题来了。当用户输入 1-50 个字符然后决定发送信息时,一切正常。但是..当用户输入超过 50 个字符时,我的应用程序无法发送信息。

我尝试在 app.config 文件中更改/添加 maxArrayLength、maxStringContentLength、maxBufferPoolSize 和 maxBufferSize。比以前更高的价值,但没有成功。

所以我的问题是:我可以发送超过 50 个字符还是有限制?如果可能的话,发送超过 50 个字符.. 我该怎么做?

- - - - - - - - - - - 编辑 - - - - - - - - - -

这就是我将信息发送到 WCF 的方式

            var server = new EmployeeAssisterClient();

            var timeReportList = _timeReport.GetAll();

            foreach (var timeReport in timeReportList)
            {
                if (!result)
                    break;

                result = server.RegisterTimeAsync(new EmployeeAssisterWCF.TimeReport
                    {
                        CustomerId = timeReport.CustomerId,
                        Date = timeReport.Date,
                        InvoiceText = timeReport.InvoiceText,
                        TimeInvoiced = (int) timeReport.InvoicedTime,
                        TimeWorked = (int) timeReport.WorkedTime,
                        UserId = timeReport.UserId,
                    }).Result;
            }

WCF 中的 RegisterTime 方法

public Boolean RegisterTime(TimeReport timeReport)

    {            
        var connection = new SqlConnection(_connectionString);
        var cmd = new SqlCommand("insert into TimeReport values (@employeeId, @customerNumber, @invoicedTime, @workedTime, @date, @invoiceText, @Invoiced)", connection);

        cmd.Parameters.Add(new SqlParameter("@employeeId", timeReport.UserId));
        cmd.Parameters.Add(new SqlParameter("@customerNumber", timeReport.CustomerId));
        cmd.Parameters.Add(new SqlParameter("@invoicedTime", timeReport.TimeInvoiced));
        cmd.Parameters.Add(new SqlParameter("@workedTime", timeReport.TimeWorked));
        cmd.Parameters.Add(new SqlParameter("@date", timeReport.Date));
        cmd.Parameters.Add(new SqlParameter("@invoiceText", timeReport.InvoiceText));
        cmd.Parameters.Add(new SqlParameter("@Invoiced", false));

        try
        {
            cmd.Connection.Open();
            cmd.ExecuteNonQuery();
        }
        catch (SqlException)
        {
            cmd.Connection.Close();
            return false;
        }
        finally
        {
            cmd.Connection.Close();
        }
        return true;
    }

还有我的绑定

<bindings>
  <netHttpBinding>
    <binding name="netHttpBindingConfig" maxReceivedMessageSize="2097152"
                 maxBufferSize="2097152" 
                 maxBufferPoolSize="2097152"> 
      <security mode="TransportCredentialOnly">
        <transport clientCredentialType="Windows" />
        <message clientCredentialType="UserName" />
      </security>
    </binding>
  </netHttpBinding>
</bindings>

问候尼克拉斯

4

0 回答 0