标签: recover

WCF ChannelFactory和频道 - 缓存,重用,关闭和恢复

我的WCF客户端库有以下规划的体系结构:

  • 使用ChannelFactory而不是svcutil生成的代理,因为我需要更多的控制,我还想让客户端保持在一个单独的程序集中,并避免在我的WCF服务更改时重新生成
  • 需要将消息检查器的行为应用于我的WCF端点,因此每个通道都能够发送自己的身份验证令牌
  • 我的客户端库将从MVC前端使用,因此我将不得不考虑可能的线程问题
  • 我正在使用.NET 4.5(也许它有一些帮助器或新方法以更好的方式实现WCF客户端?)

我已经阅读了很多关于各种不同内容的文章,但我仍然对如何以正确的方式将它们整合在一起感到困惑.我有以下问题:

  1. 据我所知,建议将ChannelFactory缓存在静态变量中,然后从中获取通道,对吗?
  2. 是特定于整个ChannelFactory的端点行为,还是我可以分别为每个通道应用我的身份验证行为?如果行为特定于整个工厂,这意味着我无法在我的端点行为对象中保留任何状态信息,因为相同的身份验证令牌将被重用于每个通道,但显然我希望每个通道都有自己的身份验证令牌.当前用户.这意味着,我将不得不计算我的端点行为中的令牌(我可以将它保存在HttpContext中,我的消息检查器行为只会将其添加到传出消息中).
  3. 我的客户端类是一次性的(实现IDispose).如何正确处理通道,知道它可能处于任何可能的状态(未打开,打开,失败......)?我只是处理它吗?我会中止然后处理吗?我关闭它(但它可能根本没有打开)然后处理?
  4. 如果在使用频道时出现问题,该怎么办?只有通道坏了或整个ChannelFactory坏了吗?

我猜,一行代码会说超过一千个单词,所以这是我的代码形式的想法.我在上面用"???"标记了我的所有问题 在代码中.

public class MyServiceClient : IDisposable
{
    // channel factory cache
    private static ChannelFactory<IMyService> _factory;
    private static object _lock = new object();

    private IMyService _client = null;
    private bool _isDisposed = false;

     /// <summary>
    /// Creates a channel for the service
    /// </summary>
    public MyServiceClient()
    {
        lock (_lock)
        {
            if (_factory == null)
            {
                // ... set up custom bindings here and get some config values

                var endpoint …
Run Code Online (Sandbox Code Playgroud)

wcf dispose channel recover channelfactory

12
推荐指数
1
解决办法
6390
查看次数

在sublime text 3.0中恢复已删除的文件?

当我试图在Sublime Text 3.0中重命名文件时,我只是错误地点击了"删除文件夹".它似乎永远消失了.是否有任何绝望的方法来恢复该文件?

  • 我直接在本地工作winSshFS,没有github.
  • 它不在我的回收站中

file recover

10
推荐指数
1
解决办法
2528
查看次数

Golang恐慌崩溃预防

在Golang中,没有恢复的恐慌会导致进程崩溃,因此我最终将以下代码片段放在每个函数的开头:

defer func() {
    if err := recover(); err != nil {
        fmt.Println(err)
    }
}()
Run Code Online (Sandbox Code Playgroud)

只是为了防止我的程序崩溃.现在我想知道,它真的是要走的路吗?因为我认为在任何地方放置相同的代码看起来有点奇怪.

在我看来,Java方式,将异常冒泡到调用函数,直到main函数是控制异常/恐慌的更好方法.我理解这是由Go的设计,但是像Go那样立即崩溃过程有什么好处?

crash recover go panic

9
推荐指数
1
解决办法
6882
查看次数

如何在一个恐慌的Go函数中返回一个值?

我的Go函数应该返回一个值,但在调用库函数时可能会出现混乱.我可以用来recover()在延期调用中捕获它,但是在这种情况下如何返回值?

func MyFunc() string{
    defer func() {
        if err := recover(); err != nil {
            // What do I do to make MyFunc() return a value in case of panic?
        }
    }()
    SomeFuncThatMayPanic()
    return "Normal Return Value"
    // How can I return "ERROR" in case of panic?
}
Run Code Online (Sandbox Code Playgroud)

exception-handling recover go

9
推荐指数
1
解决办法
2723
查看次数

Git恢复未提交的更改

我有很多地方的变化.

我只是偶然做到了

git merge another_branch
git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)

在很多工作上.:(意图我不想在这里合并的变化.

如何恢复原始状态?

不,当地的变化从未发生过.

没门?

git recover

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

需要恢复较旧的$ PATH设置

我刚安装了一个覆盖我的$ PATH变量的应用程序...所以现在,一堆东西将无法正常工作.虽然我有一个完整的备份,但我希望有一个比恢复更容易的方法,获得PATH,再次"向前滚动".

Windows注册表(或其他任何地方)中是否存在存储较旧的$ PATH设置的位置?

谢谢,GS

path recover

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

如何访问我的 Github 组织 wiki 中消失的内容?

我是 Github 组织的一员,该组织一年多来一直在私人存储库中使用Wiki 功能来记录文档。我们创建了许多页面供内部使用,但维基百科在上周消失了。

我们使用免费的组织帐户和免费的个人帐户。当我们访问我们的 wiki(例如https://github.com/<organization-name>/<repo-name>/wiki)时,它现在不会显示,而是显示一个带有以下内容的横幅"Upgrade to GitHub Team or make this repository public to enable this feature."

自由组织维基消失了

Github 变更日志路线图中似乎没有任何对此的引用。我们没有将父存储库从公共更改为私有(存储库和 wiki 始终是私有的)。

如何从现在无法访问的 wiki 恢复内容?

git github recover github-organizations

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

git删除了所有内容,如何恢复文件和文件夹

这是我第一次使用git,我想将现有项目导入github,一切都被删除了.在搜索完答案之后,我认为git在git pull之后删除了文件,我正在尝试恢复文件和文件夹,但我找不到如何做到这一点.

我接着做了下一个:

jesus@jesus-K52F:~/Escritorio/Django/Ujixy$ git init
Initialized empty Git repository in /home/jesus/Escritorio/Django/Ujixy/.git/
jesus@jesus-K52F:~/Escritorio/Django/Ujixy$ git add .
jesus@jesus-K52F:~/Escritorio/Django/Ujixy$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#   new file:   Catalogoapp/__init__.py
#   new file:   Catalogoapp/models.py
#   new file:   Catalogoapp/tests.py
#   new file:   Catalogoapp/views.py
#   new file:   Messageapp/__init__.py
#   new file:   Messageapp/models.py
#   new file:   Messageapp/tests.py
#   new file:   Messageapp/views.py
#   new file:   Ujixyapp/__init__.py
[...]

jesus@jesus-K52F:~/Escritorio/Django/Ujixy$ …
Run Code Online (Sandbox Code Playgroud)

git github recover git-pull

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

如何在mysql中修复或删除/创建损坏的表?

情况:我有一个包含104个表的MySQL数据库,在Windows 7上的XAMPP上本地运行.所有表都有InnoDB引擎.XAMPP MySQL作为Windows服务运行.作为前端我有PHP(CodeIgniter).

问题:昨晚像往常一样,我停止了项目工作并正常关闭窗户.今天早上我table MY_TALBE does not exists在浏览器中出错了.show tables在控制台上显示表名,但是desc MY_TABLEselect * from MY_TABLEunknown table.我试过create table MY_TABLE(...)但我有错误table MY_TABLE already exists,所以我试过drop table MY_TABLE但它说Unknown table MY_TABLE!我尝试了mysqlcheck.exe进行修复和检查,它们都失败了,但之后,show tables不再显示表名.我需要提一下我没有更改/移动/删除/重命名任何mysql文件.我也不能删除数据库:

mysql> drop database MY_DB;
No connection. Trying to reconnect...
Connection id:    1
Current database: *** NONE ***
Run Code Online (Sandbox Code Playgroud)

问题:是否可以恢复/修复MY_TABLE,或者至少可以再次删除/创建它(不丢弃数据库并再次重新启动它)?

mysql database repair recover

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

如何恢复丢失/删除/重置 VS Code 设置?

不知何故,我在 VS Code 中的所有用户设置都已重置并删除,当我打开用户设置 JSON 文件时,我找不到以前的设置。

如何恢复以前版本的 VS Code 设置?

settings recover visual-studio-code

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