我试图根据这篇文章和这篇文章在我的 APIM 实例中实现 AAD 。不幸的是,当它进入开发人员控制台时,在我选择授权代码作为授权方法后,立即出现一个弹出窗口,并向我显示以下错误:
AADSTS900144: The request body must contain the following parameter: 'scope'.
Run Code Online (Sandbox Code Playgroud)
它失败了https://login.microsoftonline.com/{Directory (tenant) ID
}/oauth2/v2.0/authorize?response_type=code&client_id={client id}&redirect_uri=https://{my-apim-instance}/docs/services/{authorization method}/console/oauth2/authorizationcode/callback&state={state}。
由于所有这些都是 Azure 门户(此时为旧版开发人员门户)的一部分,因此我不填写范围参数。你如何设置该属性?或者问题出在其他地方?
我正在GridView考虑用文本查看图像.图片来自网址,我的问题是他们没有加载.
在网格项模板中,我有这个元素:
<Mvx.MvxImageView
android:id="@+id/gridItemImage"
android:layout_width="fill_parent"
android:layout_height="25dp"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:scaleType="fitXY"
local:MvxBind="ImageUrl Image" />
Run Code Online (Sandbox Code Playgroud)
ImageUrl绑定的属性也是这样的:
public string Image
{
get
{
return @"http://some.image/on/the/Internet.png";
}
}
Run Code Online (Sandbox Code Playgroud)
它实际上调用了一个私有字段,但我已经编写了我正在设置的测试值.
我的问题是:我应该怎么做才能正确绑定ImageUrl并让它在网格中显示?
我正在尝试使Visual Studio的代码覆盖率工具有用.我正在研究遗留项目,为了重构所有这些代码,我添加了单元测试.问题是,当我测量代码覆盖率时,我只看到三个具有测试方法的dll程序集.
你们中的一些人可能会说"如果它不存在,就意味着它没有经过测试",基本上你是对的,但我希望这个机制可以帮助我避免犯错误.我想知道未经测试的类和方法在那里,所以我知道覆盖/未覆盖之间的比例.
这是我的自定义.runsettings文件的include/exclude部分.
<ModulePaths>
<Include>
<ModulePath>.*Some\.Library\.OfMine\.dll$</ModulePath>
<ModulePath>.*\.dll$</ModulePath>
</Include>
<Exclude>
<ModulePath>.*my\.tests\.dll$</ModulePath>
<ModulePath>.*xunit\.core\.dll$</ModulePath>
<ModulePath>.*fluentassertions\.dll$</ModulePath>
<ModulePath>.*fluentassertions\.core\.dll$</ModulePath>
</Exclude>
</ModulePaths>
Run Code Online (Sandbox Code Playgroud)
我不知道为什么,但代码覆盖率实际上也列出了FluentAssertions,XUnit和My.Tests.dll(存储测试),所以我将它们排除在外.那部分确实奏效了.这个链接帮助了我.但是,当我添加Some.Library.OfMine.dll时,它不会显示在代码覆盖率结果中.
为了帮助指出它,我添加了这一部分:
<SymbolSearchPaths>
<Path>E:\The\Absolute\Path\To\The\Test\Project\bin\Debug</Path>
</SymbolSearchPaths>
Run Code Online (Sandbox Code Playgroud)
并在测试项目中向Some.Library.OfMine.dll添加了一个引用.我确定在构建完成后,dll和pdb就在那里.
但是我仍然无法在代码覆盖率结果中看到覆盖/未覆盖库中的Some.Library.OfMine.dll.
实际上我可以做我想做的事吗?如果是这样,如何实现呢?
我正在 Azure API 管理的实例中配置入站策略。
首先,我设置一个变量:
<set-variable name="var1" value="" />
Run Code Online (Sandbox Code Playgroud)
然后我发送一个请求
<send-request mode="new" response-variable-name="var1" timeout="20" ignore-error="false">
Run Code Online (Sandbox Code Playgroud)
它返回一个 JSON。测试时,我在跟踪选项卡中收到以下消息:
已发送对“ https://my-api.azure-api.net/api/data ”的 GET 请求,结果存储在“var1”变量中。
我猜发送请求策略有效并且结果存储在变量中。然后我想返回一个响应(仍在入站中,当尝试在出站中执行此操作时,我得到 500):
<return-response response-variable-name="existing response variable">
<set-status code="200" reason="OK" />
<set-header name="Content-Type" exists-action="override">
<value>application/json</value>
</set-header>
<set-body>
{
"success": true,
"var1": context.Variables["var1"]
}
</set-body>
</return-response>
Run Code Online (Sandbox Code Playgroud)
我的问题是它不起作用......它只是渲染context.Variables["var1"]。
也是如此:
@context.Variables["var1"]@{ context.Variables.GetValueOrDefault<string>("var1") }@context.Variables.GetValueOrDefault("var1")所有这些都按书面形式呈现,没有提取任何价值。
编辑:我还尝试添加占位符字符串,然后使用
<find-and-replace from="Placeholder" to="context.Variables.GetValueOrDefault("var1")" />
Run Code Online (Sandbox Code Playgroud)
并尝试将其放置在入站和出站中。但这一政策并未推出。
这是一个 JSON 对象,我想将其附加到响应中(小细节:实际上我遇到了多个变量的问题)。
我的问题是:如何将声明的变量添加到响应中?
我创建了一个解决方案有两个项目:一个是一个类库使用自托管Web API(的帮助下创建http://www.asp.net/web-api/overview/hosting-aspnet-web-api/self -host-a-web-api),第二个是用TopShelf创建的Windows服务.此解决方案的目的是使用Web API获取服务的状态报告.
一切正常,但是当我在目标解决方案中重新创建我的解决方案时,整个应用程序都无法正常工作.Windows服务似乎是工作,但是当我输入localhost:8080 /测试这是假设以查看OK(它在开头提到的单独的测试解决方案所做的),它抛出一个错误(可以看作是一个xml):
Message: No HTTP resource was found that matches the request URI 'http://localhost:8080/Test'.
MessageDetail: No type was found that matches the controller named 'Report'.
Run Code Online (Sandbox Code Playgroud)
在包含SelfHost的项目中有一个ReportController(继承自ApiController)但不知何故它是"可见的".我猜了(我相信这是一个愚蠢的猜测)并将其移至Windows服务项目,但它也无法正常工作.
谁能告诉我我面临的问题是什么?为什么在简单的解决方案中没有看到控制器?
编辑: 我的路由看起来像这样:
var config = new HttpSelfHostConfiguration(String.Format("http://localhost:{0}", port));
config.Routes.MapHttpRoute("API Default", "{action}", new { controller = defaultControllerName });
Run Code Online (Sandbox Code Playgroud)
哪里
defaultControllerName = "Report";
Run Code Online (Sandbox Code Playgroud) azure ×2
c# ×1
controller ×1
mvvmcross ×1
mvxbind ×1
routing ×1
runsettings ×1
self-hosting ×1
xamarin ×1