小编Bob*_*ers的帖子

移动到 Microsoft.Data.SqlClient 后没有 SQL 依赖遥测

我正在开发多个 ASP.NET Web 服务,这些服务使用 SQL Server 进行存储并使用 Azure Application Insights 进行遥测。在 IISExpress 下本地运行服务时,我没有在依赖遥测中获得完整的 SQL 命令文本(尽管在调用 SP 时我确实看到了存储过程名称),所以我遵循了文档中针对这种情况的建议,并从System.Data.SqlClient 到新的 Microsoft.Data.SqlClient 包。

现在我没有看到来自使用 Microsoft.Data.SqlClient 的任何组件的任何 SQL 依赖遥测。这不是我希望的结果。

在更改之前,依赖遥测中的 sdkVersion 是“rddf:2.11.2-28447”。文档说我应该在这里看到一个“rddp:”前缀,但由于不再有任何SQL 遥测,我没有任何东西要检查。

一项服务使用 Microsoft.AspNet.Identity.EntityFramework 中的一些代码,该代码继续使用 System.Data.SqlClient(不确定如何更改)。仍在为这些类生成 SQL 依赖遥测,但当然不包括完整的命令文本,并且仍然具有“rddf:”SDK 版本前缀。

我需要做什么才能获得包含完整命令文本的 SQL 依赖遥测?

一些细节:

  • .NET 框架 4.7.2
  • Microsoft.ApplicationInsights.Web 2.11.2
  • Microsoft.ApplicationInsights.DependencyCollector 2.11.2
  • Microsoft.Data.SqlClient 1.0.19269.1。较新的版本 (1.1.x) 需要更新到 Microsoft.IdentityModel.JsonWebTokens,我目前无法接受。

sql-server asp.net azure sqlclient azure-application-insights

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

Vue devtools 检查在本地托管应用程序上不可用

当我运行 Vue 应用程序时,Vue devtools 扩展会检测到 Vue.js,但会抱怨:

Devtools 检查不可用,因为它处于生产模式或被作者明确禁用。

我在本地使用yarn serve运行的应用程序提供服务vue-cli-service serve

vue: 3.0.0
vue devtools: 6.0.12
@vue/vue-cli: 5.0.1
@vue/vue-cli-service: 4.5.14
node: 16.14.0
yarn: 1.22.4
Chrome:  98.0.4758.102
Run Code Online (Sandbox Code Playgroud)

Vue 开发工具在以下情况下可以工作:

  • 另一个开发人员从干净的本地存储库在 Chrome 中运行该应用程序(与上述所有内容的版本相同)
  • 我在 Chrome 中创建并运行一个新的 Vue 应用程序 (vue create)

如果出现以下情况, Vue devtools不起作用(相同的错误消息):

  • 我从新的本地存储库运行我的应用程序
  • 我清除了 Chrome 中的所有浏览数据
  • 我添加vue.config.performance = true到我的main.ts文件中
  • 我添加--mode=development到我的vue-cli-service build命令中
  • 我使用 Edge (Chromium) 而不是 Chrome
  • 我将 vue 更新到 3.0.14
  • http://localhost:8080我通过主机文件别名访问该应用程序https://myalias:8080

AFAIK 我从未做过任何强制生产构建或禁用 …

google-chrome vue.js yarnpkg vue-devtools

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

TRESTRequest:如何向 PUT 请求添加查询字符串参数

我正在使用 Delphi REST.Client组件,并希望发送这样的请求:

PUT http://hostname/api/items?arg=value
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码:

req := TRESTRequest.Create(nil);
req.Client := FRESTClient;
req.Method := TRESTRequestMethod.rmPUT;
req.Resource := 'api/items';
req.AddParameter('arg', 'value');
req.AddBody(someJSONObject);
req.Execute;
Run Code Online (Sandbox Code Playgroud)

但是,Fiddler 指示请求中包含参数,并且服务器拒绝该请求,因为该请求格式不正确。

PUT http://hostname/api/items HTTP/1.1
Content-Type: application/json
Content-Length: 123
Connection: keep-alive
Host: hostname
Accept: application/json, text/plain; q=0.9, text/html;q=0.8,
Accept-Charset: UTF-8, *;q=0.8
Accept-Encoding: identity
User-Agent: Embarcadero RESTClient/1.0
Run Code Online (Sandbox Code Playgroud)

在 Delphi 调试器中,我可以看到正在使用的参数种类pkGETorPOST(默认)。我没有看到 Kind 的任何值似乎可以解决这个问题。

任何想法我做错了什么?许多这些类的文档是不是 非常 有帮助

delphi rest

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

TRESTRequest:如何将数组添加为 PUT 请求的正文

我想发送一个 PUT 请求,其中正文包含一组 JSON 对象,如下所示:

PUT http://hostname/api/items
[{"ID":1},{"ID":2},...]
Run Code Online (Sandbox Code Playgroud)

使用如下代码,我可以轻松地发送一个带有单个 TJSONObject 主体的 POST 请求:

req := TRESTRequest.Create(nil);
req.Client := FRESTClient;
req.Method := TRESTRequestMethod.rmPOST;
req.Resource := 'api/items';
req.AddBody(someJSONObject);
req.Execute;
Run Code Online (Sandbox Code Playgroud)

Fiddler 将请求显示为具有正确的内容:

{"ID",1}
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用 PUT 请求并添加 TJSONArray 作为正文...

ja := TJSONArray.Create;
for jo in someJSONObjects do
  ja.Add(jo);
req.Method := TRESTRequestMethod.rmPUT;
req.AddBody(ja);
Run Code Online (Sandbox Code Playgroud)

Fiddler 将请求显示为有一大堆奇怪的 JSON 内容:

{"elements":{"items":[{"members":{"items":[{"jsonString":{"strBuffer":{"data":["I","D","","","","","","","","","","","","","",""],"length":2,"maxCapacity":2147483647},"owned":true},"jsonValue":{"strBuffer":{"data":["1","","","","","","","","","","","","","","",""],"length":1,"maxCapacity":2147483647},"owned":true},"owned":true}],...
Run Code Online (Sandbox Code Playgroud)

它看起来像是原始内存对象的某种低级序列化,而不是预期的 JSON 数组内容。

知道我做错了什么吗?AddBody 方法的文档不是很有帮助。

delphi rest json

3
推荐指数
1
解决办法
3034
查看次数