小编Joh*_*lly的帖子

有没有办法在Azure中查看已部署的文件?

Azure中是否有可用的文件"视图"?当我登录到azure查看我部署的网站时,我发现没有明显的方法可以确切地看到Azure正在托管的文件.

我很想能够确切地看到那些文件.我可以看到Visual Studio Online选项允许您实时编辑服务器代码但这比我需要的更多.我只是希望能够检查某些文件是否已部署而其他文件未部署.

azure azure-web-sites

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

在Azure Web App上使用ASP.Net Core在容器上配置AppSettings:冒号冒号?

考虑一下appsettings.json

{
  "Parent": {
    "ChildOne": "C1 from secrets.json",
    "ChildTwo": "C2 from secrets.json"
  }
}
Run Code Online (Sandbox Code Playgroud)

根据Microsoft(https://blogs.msdn.microsoft.com/waws/2018/06/12/asp-net-core-settings-for-azure-app-service/)的说明,是否已部署使用此配置的应用程序到Azure中的AppService,可以通过在Azure中以样式Parent:ChildOne/ 创建应用程序设置来覆盖配置Parent:ChildTwo。需要明确的是:使用冒号来定位特定的配置。

使用标准AppService可以正常工作:

冒号在Azure应用服务上很好

但是,如果您使用Web App for Containers /即将Docker映像部署到Linux上的Azure App Service(https://docs.microsoft.com/zh-cn/azure/app-service/containers/app-service -linux-intro),您不能使用冒号:

在适用于Linux的Azure App Service上冒号不适合

为什么?

将鼠标悬停在错误上时,您会看到以下消息:This field can only contain letters, numbers (0-9), periods ("."), and underscores ("_")。使用.不起作用las。

您如何Parent:ChildOne在Azure中配置说?Parent.ChildOne不起作用。有人可以建议吗?我找不到关于此的任何文档。

azure azure-web-sites docker

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

是否可以使用TypeScript对jQuery.fn.extend建模

我的猜测是,答案是"不",但我想检查一下我没有错过的东西.

jQuery有一个fn.extend方法,它允许你用额外的方法扩充jQuery对象.以下是API文档中的示例:

jQuery.fn.extend({
  check: function() {
    return this.each(function() {
      this.checked = true;
    });
  },
  uncheck: function() {
    return this.each(function() {
      this.checked = false;
    });
  }
});

// Use the newly created .check() method
$( "input[type='checkbox']" ).check();
Run Code Online (Sandbox Code Playgroud)

我一直在填写jQuery JSDoc并测试DefinitelyTyped项目.以前jQuery.fn被定义为any.为了使它符合我一直在寻找的文档更改它以涵盖extend方法:

fn: {
    /**
     * Merge the contents of an object onto the jQuery prototype to provide new jQuery instance methods.
     * 
     * @param object An object to merge onto the jQuery prototype.
     */
    extend(object: …
Run Code Online (Sandbox Code Playgroud)

jquery typescript

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

带有 Select 的 Task.WhenAll 是一把枪——但为什么呢?

考虑:您有一组用户 ID,并希望从 API 加载由其 ID 表示的每个用户的详细信息。您希望将所有这些用户打包到某种集合中并将其发送回调用代码。并且您想使用 LINQ。

像这样的东西:

var userTasks = userIds.Select(userId => GetUserDetailsAsync(userId));
var users = await Task.WhenAll(tasks); // users is User[]
Run Code Online (Sandbox Code Playgroud)

当我的用户相对较少时,这对我的应用程序来说很好。但是,它出现了无法扩展的情况。当它到达成千上万的用户时,这导致同时触发了数千个 HTTP 请求,并且开始发生不好的事情。我们不仅意识到我们正在对我们正在使用的 API 发起拒绝服务攻击,而且我们还通过线程饥饿使我们自己的应用程序崩溃。

不是骄傲的一天。

一旦我们意识到我们的困境的原因是Task.WhenAll/Select组合,我们就能够摆脱这种模式。但我的问题是:

这里出了什么问题?

当我阅读有关该主题的内容时,Mark Heath 的异步反模式列表中的#6 似乎很好地描述了这种情况:“过度并行化”:

现在,这确实“有效”,但是如果有 10,000 个订单呢?我们已经用数千个任务淹没了线程池,可能会阻止其他有用的工作完成。如果 ProcessOrderAsync 对另一个服务(如数据库或微服务)进行下游调用,我​​们可能会因调用量过高而使该服务过载。

这真的是原因吗?我问的越多,我对async/ 的理解await就越不清晰。从许多文章中可以清楚地看出“线程不是任务”。这很酷,但我的代码似乎耗尽了 ASP.NET Core 可以处理的线程数。

那么是这样吗?我的Task.WhenAllSelect组合是否耗尽了线程池或类似的东西?或者还有其他我不知道的解释吗?

更新:

我把这个问题变成了一篇博客文章,里面有更多细节/华夫饼。你可以在这里找到它:https : //blog.johnnyreilly.com/2020/06/taskwhenall-select-is-footgun.html

linq task threadpool async-await

7
推荐指数
2
解决办法
581
查看次数

npm 脚本:是否有跨平台条件语句?

我正在尝试将 npm 包从依赖转变*nix为跨平台。我有以下脚本条目package.json

"scripts": {
    "build": "rimraf dist/ && tsc",
    // other entries
    "prepublish": "if [ ! $SKIP_PREPUBLISH ]; then npm run build; fi"
  },
Run Code Online (Sandbox Code Playgroud)

我想采用if [ ! $SKIP_PREPUBLISH ]; then npm run build; fi并使其跨平台。有没有办法做到这一点?

cross-platform npm

6
推荐指数
1
解决办法
641
查看次数

TypeScript 条件类型和类型防护

我在结合 TypeScript 的类型保护和条件类型时遇到一些问题。考虑:

export interface IThisThing {
    someProp: number;
}

export function isIThisThing(type: any): type is IThisThing { 
    return !!type.someProp;
}

export interface IThatThing {
    someOtherProp: string;
}

export function isIThatThing(type: any): type is IThatThing { 
    return !!type.someOtherProp;
}

function doAThing<T extends IThisThing | IThatThing>(
    data: T
): T extends IThisThing ? IThisThing : IThatThing {
    if (isIThisThing(data)) { 
        return data; // Type 'T & IThisThing' is not assignable to type 'T extends IThisThing ? IThisThing : IThatThing'.
    };
    return …
Run Code Online (Sandbox Code Playgroud)

types conditional-statements typescript

6
推荐指数
1
解决办法
1862
查看次数

使Windows身份验证和WKHTMLToPDF发挥得很好

我面临着从ASP.NET网站上的HTML页面生成PDF的任务.(用户可以节省/打印的东西)

我发现WKHTMLToPDF很好地完成了这项工作:

调用wkhtmltopdf从HTML生成PDF

但是,我有一个问题.我们的网站是一个Intranet站点,使用Windows身份验证.我可以使用--username和--password将我的凭据传递给WKHTMLToPDF,并向我自己证明网页是按照您的希望生成的.

问题是:如何为进入我们系统的每个不同用户做些什么?我可以想到一些可能/可能不起作用的可能解决方案,我希望有人可以给我一些意见/指导,因为我似乎已经结束了我的研究.

可能的解决方案:

  1. 在ASP.NET中是否有任何方法可以从用户凭据中提取用户名和密码以传入WKHTMLToPDF?我怀疑这个问题的答案是"不,而且出于明智的原因"
  2. 是否可以运行Process并通过Users凭据?我可以看到可以在进程中设置用户名/密码(虽然我不知道如何从凭证中传递这个,因为密码似乎没有公开).也许还有另一种方法可以直接将凭证传递给Process?
  3. 我可以创建一个单独的PDFGenerator网站,它不使用Windows身份验证.然后,我可以将安全网站中的HTML/CSS /图像移植到共享目录,然后将用户重定向到PDFGenerator网站以实际从HTML生成PDF,而不必担心身份验证(并且会在PDF之后清理HTML等)生成).

我怀疑3的是,我最终会persuing的解决方案,但因为这是一个基本的解决方法大处理认证问题,我对1或2个更好的建议或帮助非常开放!

asp.net pdf-generation ntlm windows-authentication wkhtmltopdf

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

Angular + TypeScript:$ watchCollection,"控制器为"良好做法

一般来说,在我的Angular/TypeScript应用程序中,我倾向于使用"控制器为"语法.

然而,对于我正在研究的CRUD屏幕,我发现自己偏离了这一点.所以,我可以利用$watchCollection /检查更改等我发现自己使用由优秀建议章的@basarat模式在这里.也就是说,在视频中(在Angular中将"控制器作为"语法之前)@basarat创建一个表示被$scope调用者上的控制器的变量vm.与在视图中使用"controller as vm"一样,您仍然可以使用vm.myProperty/ vm.myFunction()style语法与模型进行交互.

所以,控制器看起来像这样:

module controllers {

    "use strict";

    interface sageEditRouteParams extends ng.route.IRouteParamsService {
        id: number;
    }

    interface sageEditScope extends ng.IScope {
        vm: SageEdit;
    }

    class SageEdit {

        log: loggerFunction;
        sage: sage;
        title: string;

        private _hasChanges: boolean;

        static $inject = ["$routeParams", "$scope", "common", "datacontext"];
        constructor(
            private $routeParams: sageEditRouteParams,
            private $scope: sageEditScope,
            private common: common,
            private datacontext: datacontext
            ) {

            this.sage = undefined;
            this.title = "Sage Edit";

            this.log …
Run Code Online (Sandbox Code Playgroud)

angularjs typescript angularjs-scope

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

反应 useCallback 的 useEffect 依赖总是触发渲染

我有一个谜。考虑以下自定义 React 钩子,它按时间段获取数据并将结果存储在 a 中Map

export function useDataByPeriod(dateRanges: PeriodFilter[]) {
    const isMounted = useMountedState();

    const [data, setData] = useState(
        new Map(
            dateRanges.map(dateRange => [
                dateRange,
                makeAsyncIsLoading({ isLoading: false }) as AsyncState<MyData[]>
            ])
        )
    );

    const updateData = useCallback(
        (period: PeriodFilter, asyncState: AsyncState<MyData[]>) => {
            const isSafeToSetData = isMounted === undefined || (isMounted !== undefined && isMounted());
            if (isSafeToSetData) {
                setData(new Map(data.set(period, asyncState)));
            }
        },
        [setData, data, isMounted]
    );

    useEffect(() => {
        if (dateRanges.length === 0) {
            return;
        } …
Run Code Online (Sandbox Code Playgroud)

reactjs usecallback use-effect

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

LINQ to Objects - 在IEnumerable <string>上使用ToArray/ToList的任何性能优势

这几乎无疑是一个愚蠢的问题.在我的辩护中我生病了.无论如何.

我有一个内存列表中的对象.我使用下面的表达式从我的对象列表中提取出我感兴趣的字符串:

var myStrings = myListOfObjects.Select(r => r.MyString);
Run Code Online (Sandbox Code Playgroud)

这为我提供了一个IEnumerable字符串.myStrings稍后会在我的代码中重复使用多次.我想知道的是,在使用它之前执行ToArray或ToList(即"贪婪"运算符)是否有任何性能优势?(所以我的操作将直接针对数组/列表.)

对于它的价值,myStrings在使用时将被完整地重复使用.

linq ienumerable linq-to-objects tolist toarray

0
推荐指数
1
解决办法
915
查看次数

Convert.ToDecimal抛出的意外异常

这可能是旧的,但我找不到任何东西.有谁知道为什么这个:

Convert.ToDecimal("3.14521963414679E-08")
Run Code Online (Sandbox Code Playgroud)

FormatException("输入字符串的格式不正确.")

但是这可以按预期工作吗?

Convert.ToDouble("3.14521963414679E-08")
Run Code Online (Sandbox Code Playgroud)

我以为Convert.ToDecimal可以处理指数 - 也许我错了.

.net c# types scientific-notation

-1
推荐指数
1
解决办法
864
查看次数