我正在为一家小公司创建无服务器API。
目前我的网络访问设置为IP地址0。0.0.0。与MongoDB Compass的连接正在工作。
功能:
[FunctionName("Klanten2")]
public static async Task<IActionResult> Klanten2(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
try
{
MongoClient client = new MongoClient("mongodb+srv://<Username>:<password>@testdb.cbbhf9u.mongodb.net/?retryWrites=true&w=majority");
var database = client.GetDatabase("Test");
var collection = database.GetCollection<Klant>("Test");
return new OkObjectResult(collection);
}
catch (Exception ex)
{
return new BadRequestObjectResult("Error get klanten - " + ex.Message);
}
}
目前我的连接网址是在功能,但如果它的工作,然后我去移动网址到本地。settings.json
错误:
发生未处理的主机错误。[2023-04-30T17:34:21.Newtonsoft.Json:从“MongoDB”上的“DirectConnection”获取值时出错。Driver.Core.ClusterDescription'.MongoDB.Driver.核心:当ConnectionModeSwitch设置为UseConnectionMode时,无法使用DirectConnection。
有人知道这个问题吗?
使用Mongodb之前。Net Core WebApi,一切正常。
2条答案
按热度按时间eufgjt7s1#
该错误消息表明MongoDB驱动程序配置中的连接模式设置和直连设置之间可能存在冲突。
若要解决此问题,您可以尝试将连接模式更改为Direct,而不是使用UseConnectionMode设置。可以按如下方式修改代码:
通过将连接模式设置为ConnectionMode。直接,你告诉驱动程序使用直接连接,而不是在自动和直接连接模式之间切换。
您可能还需要检查是否有任何其他配置设置可能导致与DirectConnection设置冲突。
ilmyapht2#
这个错误
DirectConnection cannot be used when ConnectionModeSwitch is set to UseConnectionMode
说明你使用了两个互斥的选项:DirectConnection
和ConnectionMode
在MongoClientSettings或connectionString中,或者您通过直接分配ConnectionModeSwitch
来混淆默认配置。您提供的代码没有设置它,所以我假设您没有提供所有的代码。你应该做一些额外的研究,以找到它的分配。