リクエストでStreamを使用して単純なServiceStackサービスを作成すると、サービスメソッドのメタデータページにアクセスできません。要求にストリームを持つServiceStackサービスでメタデータページが破損する
サービス自体が動作するように表示されます(私は郵便配達を使用してhttp://localhost:12345/uploadStreamにストリームを送信することができますし、私は余分なコードのビットでOK serviceメソッドでストリームをデシリアライズすることができます。)
私は、.NETのコアを使用していますし、 Servicestack ...
完全レポ:
using Funq;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using ServiceStack;
using ServiceStack.Web;
using System;
using System.IO;
using System.Threading.Tasks;
namespace ServiceStackCoreTest
{
class Program
{
static void Main(string[] args)
{
IWebHost host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.UseUrls("http://*:12345/test/")
.Build();
host.Run();
}
}
public class Startup
{
public void ConfigureServices(IServiceCollection services){ }
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.ApplicationServices.GetService<ILoggerFactory>();
app.UseServiceStack((AppHostBase)Activator.CreateInstance<AppHost>());
app.Run((RequestDelegate)(context => (Task)Task.FromResult<int>(0)));
}
}
public class AppHost : AppHostBase
{
public AppHost() : base("Test Service", typeof(Program).GetAssembly()){ }
public override void Configure(Container container){ }
}
public class MyService : Service
{
public TestResponse Any(TestRequest request)
{
return new TestResponse();
}
}
[Route("/uploadStream", "POST", Summary = "Upload stream")]
public class TestRequest : IReturn<TestResponse>, IRequiresRequestStream
{
public Stream RequestStream { get; set; }
}
public class TestResponse{ }
}
私の完全なcsproj(Iは、Windows 10/VS2017を使用しています)...
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Hosting" Version="1.1.1" />
<PackageReference Include="ServiceStack.Core" Version="1.0.40" />
<PackageReference Include="ServiceStack.Kestrel" Version="1.0.40" />
</ItemGroup>
</Project>
メタデータページを参照すると、操作のリストが表示されますが、 'TestRequest'メソッドの隣にある 'XML'、 'JSON'または 'JSV'をクリックすると、エラーERR_INCOMPLETE_CHUNKED_ENCODING
クロム(エッジは何も報告しません)、私の出力ウィンドウでは、私はException thrown: 'System.MemberAccessException' in System.Private.CoreLib.ni.dll
を参照してください。奇妙なことに、「CSV」をクリックすると私にメタデータページが表示されます。
私のServiceStackプロジェクトでサービスメソッドを間違って作成していますか?
賢い、ありがとう(もう一度!)あなたの助けに感謝します。私はこれを答えとしてマークしましたが、来週仕事に戻ったときにテストするだけです。 – Jay