我使用 AWS lambda 已有几个月了。我当时正在使用 lambda,最终一切都很好。第二天我回来处理它,但我什至无法让 Visual Studio 使用模拟 Lambda 测试工具启动应用程序。
我最终创建了一个空的 lambda,它只返回输入(AWS 为您提供的标准项目代码作为模板),甚至无法运行。我按下播放按钮启动模拟 Lambda 测试工具,它看起来会运行几秒钟,然后关闭。命令窗口甚至没有弹出。
这是模板项目中的代码。
public string FunctionHandler(string input, ILambdaContext context)
{
return input?.ToUpper();
}
Run Code Online (Sandbox Code Playgroud)
这就是我在 VS 的输出窗口中得到的所有内容:
目标进程退出,但未引发 CoreCLR 启动事件。确保目标进程配置为使用 .NET Core。如果目标进程不在 .NET Core 上运行,则可能会出现这种情况。程序“[16700] dotnet-lambda-test-tool-2.1.exe:Program Trace”已退出,代码为 0 (0x0)。程序“[16700] dotnet-lambda-test-tool-2.1.exe”已退出,代码为-2147450726 (0x8000809a)。
我尝试过重新安装AWS工具包,也尝试过重新安装Visual Studio。这是 VS 2017 和 VS 2019 的问题。我刚刚安装了 2019,看看是否可以解决该问题。任何帮助,将不胜感激。
如果我有一个 json 字符串(例如从文件中读取)并且我的 api 以字符串形式返回,Postman 会将响应视为文本
app.MapGet("/myapi", () =>
{
var json = File.ReadAllText("file.json");
return json;
});
Run Code Online (Sandbox Code Playgroud)
那么如何强制内容类型为 application/json 呢?(请不要使用 Newtonsoft)我能够使用该解决方法,但看起来很丑
app.MapGet("/myapi", () =>
{
var json = File.ReadAllText("file.json");
var jo = JsonSerializer.Deserialize<object>(json);
return Results.Json(jo);
});
Run Code Online (Sandbox Code Playgroud)
谢谢
我的响应中有 JSON,结构如下
{
"statusCode": 200,
"result": {
"generalInfo": {
"firstName": "",
"lastName": ""
},
"isError": false
},
"sentDate": "2022-02-06T10:04:06.6853775Z",
}
var response = await _httpClient.PostAsJsonAsync(address, model);
Stream responseBody = await response.Content.ReadAsStreamAsync();
Run Code Online (Sandbox Code Playgroud)
来自端点的响应实际上有点复杂,我想只提取特定字段,所以我使用了动态
dynamic data = await JsonSerializer.DeserializeAsync<dynamic>(responseBody)
var dataString = data.ToString();
Run Code Online (Sandbox Code Playgroud)
// 数据字符串是
{"result":{"generalInfo":{"firstName":"John","lastName":"Doe"},"isError":false}
Run Code Online (Sandbox Code Playgroud)
如果我尝试访问这样的动态属性
var firstName = data.result.generalInfo.firstName;
var lastName = data.result.generalInfo.lastName;
var isErr = data.IsError;
Run Code Online (Sandbox Code Playgroud)
我遇到异常
“System.Text.Json.JsonElement”不包含“结果”的定义
使用 .NET 6 Minimal API,我尝试multipart/form-data
在 POST 方法中进行处理。但是,使用以下代码:
app.MapPost("/tickets", async (IFreshdeskApiService s, [FromForm] CreateTicketDto dto) => await s.Add(dto))
.Accepts<CreateTicketDto>("multipart/form-data");
Run Code Online (Sandbox Code Playgroud)
我收到 400 错误请求,正文为:
{
"error": "Expected a supported JSON media type but got \"multipart/form-data; boundary=--------------------------391539519671819893009831\"."
}
Run Code Online (Sandbox Code Playgroud)
我切换到非最小API(即使用app.MapControllers()
),但是有什么方法可以在最小API中处理这个问题吗?
<ViewCell>
<ViewCell.View>
<Label Text="{Binding ABC}"></Label>
</ViewCell.View>
</ViewCell>
Run Code Online (Sandbox Code Playgroud)
假设此视单元位于ListView中。如果内容页面与视图模型绑定,那么如何获得对内容页面绑定的引用。当前,“ ABC”正在引用列表中对象的属性,但我想从内容页面的绑定上下文中获取值。
<ffimageloading:CachedImage.GestureRecognizers>
<TapGestureRecognizer BindingContext="{x:Reference page}" Command="{Binding OnSignInCommand}" CommandParameter="{Binding Model}" />
</ffimageloading:CachedImage.GestureRecognizers>
Run Code Online (Sandbox Code Playgroud) 在 20seg - 3 分钟之间振荡一段时间后,Android 中的谷歌浏览器(还有 iPhone)会终止 websocket 连接,具体取决于设备。当应用程序不在前台时,它也无法处理简单的计时器或间隔,就像我在底部附加的示例一样。
我明白这是正常的,为了更新电池的寿命并保护移动设备的资源,但这很糟糕......当用户需要一直连接到套接字并且不丢失与websocket 时只需打开 whatsapp 来回答消息或其他浏览器选项卡,然后返回 webapp 并断开连接。例如,聊天室。
这个问题有什么解决方法吗?可以直接从 chrome 配置的东西,webapp 的特殊权限,这种情况下的某种绕过?这是一个 webapp,添加到 android 的启动屏幕......即使如此,chrome 似乎也没有给它任何特别的优先级,并不断杀死 websocket 并在 webapp 处于后台时拒绝执行 javascript。(屏幕关闭或前台其他应用程序)
我希望我已经解释清楚了,我是 stackoverflow 的新手,我的英语不太好。提前致谢!
例如,一个简单的页面,您可以从您的移动浏览器执行,并看到该时间间隔不会像预期的那样执行 10 秒
<script>
setInterval(function() {
var timeNow = new Date().toLocaleTimeString()
document.body.innerHTML += "<div> " + timeNow + "</div>"
}, 10000)
</script>
Run Code Online (Sandbox Code Playgroud) 当我调试 UWP 项目时,出现以下错误:
System.IO.FileNotFoundException: '无法加载文件或程序集 'e_sqlite3,Culture=neutral,PublicKeyToken=null'。该系统找不到指定的文件。'
错误发生在这一行:
Xamarin.Forms.Forms.Init(e);
从以下代码块:
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
Frame rootFrame = Window.Current.Content as Frame;
// Do not repeat app initialization when the Window already has content,
// just ensure that the window is active
if (rootFrame == null)
{
// Create a Frame to act as the navigation context and navigate to the first page
rootFrame = new Frame();
rootFrame.NavigationFailed += OnNavigationFailed;
Xamarin.Forms.Forms.Init(e);
if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
{
//TODO: Load state from previously …
Run Code Online (Sandbox Code Playgroud) 我有一个属性:
[MaxLength(3)]
public string State { get; set; }
Run Code Online (Sandbox Code Playgroud)
在指定的属性上State
,我只希望它匹配给定的 5 个澳大利亚州:
{ "VIC", "NSW", "QLD", "SA", "TAS", "WA" }
。我如何在这种情况下使用 DataAnnotations?
如何定义仅使用 System.Text.Json.Serialization 工作的类?
使用 Microsoft 的 Newtonsoft 反序列化新替代方案目前不适用于嵌套类,因为在反序列化 JSON 文件时,所有属性都设置为 null。使用 Newtosonsoft 的 Json property 属性[JsonProperty("Property1")]
来维护属性的值。
谢谢!
public class Class1
{
[JsonProperty("Property1")]
public string Property1 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
使用 Visual Studio 的粘贴 JSON 到类进行粘贴以创建类:
public class Rootobject
{
public string Database { get; set; }
public Configuration Configuration { get; set; }
}
public class Configuration
{
public Class1 Class1 { get; set; }
public Class2 Class2 { get; set; }
public Class3 Class3 { get; …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将“Content-Type”标头:“application/x-www-form-urlencoded”发送到最小 api,但出现以下错误:
\n\n\nMicrosoft.AspNetCore.Http.BadHttpRequestException:需要\n支持的 JSON 媒体类型,但得到“application/x-www-form-urlencoded”。
\n
这是端点:
\napp.MapPost("/api/formulario/imovel-web/cadastrar",\n async (LeadRequest request, ILeadService service, ILogService logService, ICorretorMrvRepository corretorMrvRepository) =>\n{\n request.Origem = "imovelweb";\n\n try\n {\n if (string.IsNullOrEmpty(request.Token))\n {\n logService.Error("leads-api", "imovel-web: Acesso n\xc3\xa3o autorizado (Token n\xc3\xa3o encontrado).", Environment.StackTrace, request: request.Serialize());\n\n return Result.ResponseFailed("Acesso n\xc3\xa3o autorizado (Token n\xc3\xa3o encontrado).");\n }\n else\n {\n var idParceiro = await corretorMrvRepository.ObterIdParceiro("imovelweb");\n var origem = string.Empty;\n\n if (idParceiro != Guid.Empty)\n {\n\n var jwt = request.Token;\n var handler = new JwtSecurityTokenHandler();\n var data = handler.ReadJwtToken(request.Token);\n\n var autorizado …
Run Code Online (Sandbox Code Playgroud) c# ×7
minimal-apis ×3
.net-6.0 ×2
asp.net-core ×2
json ×2
.net ×1
.net-5 ×1
android ×1
arrays ×1
asp.net ×1
asp.net-mvc ×1
aws-lambda ×1
binding ×1
iphone ×1
javascript ×1
rest ×1
websocket ×1
xamarin ×1
xamarin.uwp ×1
xaml ×1