小编Dav*_*New的帖子

自托管GraphHopper Directions API

我们正在寻找离线路由和反向地理编码服务.

GraphHopper宣称其Directions API可以自托管:

GraphHopper Directions API自托管/内部部署

Directions API作为云服务提供,您可以按需付费.API也可作为内部部署解决方案(自托管),为您提供最高性能,定制可能性,独立性; 一切都掌握在你手中!

根据这些说明在我的本地实例上安装GraphHopper之后,我能够通过localhost HTTP API成功执行路由查询.

如何使反向地理编码工作?我找不到任何关于此的文档,GitHub上的代码似乎没有任何暗示.

openstreetmap graphhopper

6
推荐指数
1
解决办法
2928
查看次数

ASP.NET 5 RC1:System.IO.InvalidDataException:请求内容的意外结束

我在Azure Web App中运行ASP.NET 5项目.

当使用大约1.5mb或更大的文件(表单数据)调用API端点时,会引发以下异常.

这是抛出异常的地方.

有谁知道如何解决这个问题?有可能的解决方法吗?

System.IO.InvalidDataException: Unexpected end of request content at Microsoft.AspNet.Server.Kestrel.Http.MessageBody.ForContentLength.d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.WebUtilities.FileBufferingReadStream.d__27.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.WebUtilities.BufferedReadStream.d__39.MoveNext() --- End of stack trace from previous location where exception was thrown
--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.WebUtilities.MultipartReaderStream.d__36.MoveNext()
--- …
Run Code Online (Sandbox Code Playgroud)

azure azure-web-sites asp.net-core-mvc dnx asp.net-core

6
推荐指数
1
解决办法
984
查看次数

MongoWaitQueueFullException:获取与服务器的连接的等待队列已满

有时当插入一小堆不同的文档(同步)时,我得到以下异常(请参阅下面的完整堆栈跟踪):

MongoDB.Driver.MongoWaitQueueFullException:获取与服务器xyz.mongolab.com:54128的连接的等待队列已满.

MongoDatabase在我的所有存储库之间使用单例实例(因此是单个连接).基本上,我正在做这样的事情(每个集合中的文档不超过20个):

Context.Collection<ClientDocument>("clients").InsertMany(clients);
Context.Collection<VendorDocument>("vendors").InsertMany(vendors);
Context.Collection<SaleDocument>("sales").InsertOne(sale);
Run Code Online (Sandbox Code Playgroud)

以下是单例上下文:

public class MongoContext
{
    public IMongoDatabase Database { get; }

    public MongoContext(IOptions<MongoSettings> settings)
    {
        var url = MongoUrl.Create(settings.Value.EndpointUri);

        var client = new MongoClient(new MongoClientSettings()
        {
            Server = url.Server
        });

        Database = client.GetDatabase(url.DatabaseName);
    }

    public IMongoCollection<TDocument> Collection<TDocument>(string collection)
        where TDocument : IDocument
    {
        return Database.GetCollection<TDocument>(collection);
    }
}
Run Code Online (Sandbox Code Playgroud)

在MongoDB的Jira(https://jira.mongodb.org/browse/CSHARP-1144)上提交了类似的东西,但是这些情况正在处理大量的大量插入(并且通常是异步的).

我认为不需要使用这么小的插件来增加MaxConnectionPoolSize或WaitQueueSize.

可能是什么原因造成的?

我正在使用mLabs中托管的MongoDB 3.0.7.我们的应用程序托管在Azure(作为Web应用程序),我使用的是C#2.2.3 SDK.

MongoDB.Driver.MongoWaitQueueFullException:获取与服务器xyz.mongolab.com:54128的连接的等待队列已满.在MongoDB.Driver.Core.ConnectionPools.ExclusiveConnectionPool.AcquireConnectionHelper.CheckingOutConnection()在MongoDB.Driver.Core.ConnectionPools.ExclusiveConnectionPool.AcquireConnection(的CancellationToken的CancellationToken)在MongoDB.Driver.Core.Servers.ClusterableServer.GetChannel(的CancellationToken的CancellationToken)在MongoDB的.Driver.Core.Bindings.ServerChannelSource.GetChannel(的CancellationToken的CancellationToken)在MongoDB.Driver.Core.Bindings.ChannelSourceHandle.GetChannel(的CancellationToken的CancellationToken)在MongoDB.Driver.Core.Operations.BulkMixedWriteOperation.Execute(IWriteBinding结合,的CancellationToken的CancellationToken)在MongoDB.Driver.OperationExecutor.ExecuteWriteOperation [TResult]在MongoDB.Driver.MongoCollectionImpl在MongoDB.Driver.MongoCollectionImpl'1.ExecuteWriteOperation [TResult](IWriteOperation`1操作,的CancellationToken的CancellationToken)(IWriteBinding结合,IWriteOperation'1操作的CancellationToken的CancellationToken) "1.BulkWrite(IEnum erable'1请求,BulkWriteOptions选项的CancellationToken的CancellationToken)在MongoDB.Driver.MongoCollectionBase'1.InsertOne(TDocument文件,InsertOneOptions选项的CancellationToken的CancellationToken)

编辑:

如果我将MaxConnectionPoolSize设置为500并将WaitQueueSize设置为2000,则会出现以下异常:

MongoConnectionException:打开与服务器的连接时发生异常.---> System.Net.Sockets.SocketException:尝试以其访问权限禁止的方式访问套接字191.235.xxx.xxx:54128

实例化MongoClient:

var client = new MongoClient(new …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query mongodb-.net-driver

6
推荐指数
1
解决办法
4539
查看次数

在交换期间防止暂存站点重新启动

根据我的理解,暂存站点需要重新启动的唯一原因是,是否存在应用程序设置或连接字符串配置为插槽设置.

虽然这似乎并非总是如此.我们的一个应用程序将重新启动.我使用了Powershell cmdlet来确保Portal中没有"隐藏"的插槽设置(因为显然这是一件事).

还有哪些其他因素可以确定在交换期间是否重新启动暂存站点?

(我在kudu GitHub存储库上发布了这个,但没有收到回复)

编辑:

回应拜伦的回答:

我做了一些非常彻底的测试(请参阅我的测试报告),我可以执行插槽交换(有和没有预览),无需生产或暂存槽重新启动.这显然没有在Web Apps上配置插槽设置.

这是否意味着无法保证重启?我在这里提出的问题是,如果没有重启,IIS的应用程序初始化模块仍然确保应用程序确实已经预热(因为这些事情可能需要几分钟)?

azure-web-sites kudu azure-app-service-plans azure-web-app-service

6
推荐指数
1
解决办法
1223
查看次数

dotnet 发布和 web.config?

我的理解是web.config在 Azure 应用服务上运行 ASP.NET Core Web 应用程序时需要:

<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\MyProgram.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

dotnet publish -c Release不创建 this web.config,所以我创建了自己并将其放入解决方案中(奇怪,因为我以前从未这样做过)。

但我遇到的问题是它不发布web.config文件?它似乎忽略了它。

让我的应用程序在 Web App 中工作的唯一方法是web.config使用 Kudu手动将文件复制到 wwwroot 文件夹中。

注意:这是一个依赖于框架的部署 (FDD),不是独立的,并且使用 .NET Core 2。

asp.net .net-core asp.net-core asp.net-core-2.0

6
推荐指数
1
解决办法
3101
查看次数

使用 text/plain 时不支持的媒体类型

尝试消费时收到以下响应text/plain

{
    "type": "https://tools.ietf.org/html/rfc7231#section-6.5.13",
    "title": "Unsupported Media Type",
    "status": 415,
    "traceId": "|b28d0526-4ca38d2ff7036964."
}
Run Code Online (Sandbox Code Playgroud)

控制器定义:

[HttpPost]
[Consumes("text/plain")]
public async Task<IActionResult> PostTrace([FromBody]string body)
{ ... }
Run Code Online (Sandbox Code Playgroud)

HTTP 消息:

[HttpPost]
[Consumes("text/plain")]
public async Task<IActionResult> PostTrace([FromBody]string body)
{ ... }
Run Code Online (Sandbox Code Playgroud)

我能够很好地使用 JSON 或 XML。我错过了什么?

c# asp.net-core-mvc asp.net-core

6
推荐指数
1
解决办法
3776
查看次数

为什么LINQ不是纯粹的功能?

那么,为什么LINQ不被认为是纯粹的功能呢?

是因为副作用会发生吗?或者是因为它存在于一个命令式的环境中?

.net c# linq lambda functional-programming

5
推荐指数
1
解决办法
2707
查看次数

Task.Factory.StartNew(的someMethod(withParam)).continueWith(sameMethod(differentParam)).等待()

并行化以下代码的正确语法是什么?

static void Main(string[] args)
{
    Task.Factory.StartNew(
        () =>
            doOne(SelectedTask.option1)
           .ContinueWith(
            task => 
            doOne(SelectedTask.option1)).Wait()
   ); 
}
Run Code Online (Sandbox Code Playgroud)

enum"selectedTask" 相同的方法来决定执行哪些代码:

static enum SelectedTask
{
    option1,
    option2
}

static void doOne(SelectedTask Lunch)
{ 
    switch (lunch)
    {
        case SelectedTask.option1:
            Console.WriteLine("option1");
            break;
        case SelectedTask.option2:
            Console.WriteLine("option2");
            break;
        default:
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# task-parallel-library

5
推荐指数
1
解决办法
2万
查看次数

Azure表存储分区限制

可以属于Azure表的分区数限制是多少?

我发现的关于表存储限制的唯一合适的信息来源是(2012)这里(2010).

azure azure-storage azure-storage-blobs azure-table-storage

5
推荐指数
1
解决办法
2436
查看次数

Azure存储浏览客户端软件选项

据我所知,这些是唯一可用于浏览Azure表存储,队列和Blob的客户端:

那里有其他客户我不知道吗?

azure azure-storage azure-storage-blobs azure-table-storage azure-queues

5
推荐指数
1
解决办法
1320
查看次数