小编Mau*_*mek的帖子

AADSTS900144:请求正文必须包含以下参数:使用旧版开发人员门户时的“范围”

我试图根据这篇文章这篇文章在我的 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 门户(此时为旧版开发人员门户)的一部分,因此我不填写范围参数。你如何设置该属性?或者问题出在其他地方?

azure azure-active-directory azure-api-management

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

图像未从URL加载到Mvx.MvxImageView

我正在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并让它在网格中显示?

xamarin.android mvvmcross xamarin mvxbind

7
推荐指数
1
解决办法
1787
查看次数

如何强制将未经测试的程序集包含在代码覆盖范围内?

我正在尝试使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.

实际上我可以做我想做的事吗?如果是这样,如何实现呢?

code-coverage visual-studio runsettings

6
推荐指数
0
解决办法
154
查看次数

在策略定义中返回响应时如何使用变量?

我正在 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 对象,我想将其附加到响应中(小细节:实际上我遇到了多个变量的问题)。

我的问题是:如何将声明的变量添加到响应中?

string-concatenation azure azure-api-management

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

尽管存在控制器,Web API也找不到控制器

我创建了一个解决方案有两个项目:一个是一个类库使用自托管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)

c# routing controller self-hosting asp.net-web-api

4
推荐指数
1
解决办法
2610
查看次数