

ASP.NET Web APIからAzure Redis Cacheにアクセスしたいのですが、  
こちらの公式ドキュメントやブログ等を参考に、コントローラーを実装したのですが接続ができません。  
[Azure Redis Cache の使用方法](https://azure.microsoft.com/ja-
jp/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/#-6)  
[ASP.NET Web API で Azure Redis Cache
を利用する](http://gooner.hateblo.jp/entry/2014/08/26/azure-redis-cache/)

[code]

    public class TestController : ApiController
    {
        private static ConnectionMultiplexer _connection;
        public static ConnectionMultiplexer Connection
        {
            get
            {
                if (_connection == null || !_connection.IsConnected)
                {
                    _connection = ConnectionMultiplexer.Connect("myredis.redis.cache.windows.net,abortConnect=false,ssl=true,password=<password>");
                }
                return _connection;
            }
        }
    
        public IHttpActionResult Post()
        {
            try
            {
                IDatabase cache = Connection.GetDatabase();
                cache.StringSet("foo", "bar");
                string foo = cache.StringGet("foo");
    
                return Ok(new { foo = foo });
            }
            catch(Exception e)
            {
                return InternalServerError(e);
            }            
        }    
    }
    
[/code]

上記のコードだと、  
IDatabase cache = Connection.GetDatabase();  
以降にブレークポイントが止まらず、  
return Ok(new { foo = foo });  
まで飛んでしまい、Exceptionも発生していません。  
ただ、コンソールアプリケーションで、同じよなコードで実行すると、接続はできています。

[code]

    class Program
    {
        private static ConnectionMultiplexer _connection;
        public static ConnectionMultiplexer Connection
        {
            get
            {
                if (_connection == null || !_connection.IsConnected)
                {
                    _connection = ConnectionMultiplexer.Connect("myredis.redis.cache.windows.net,abortConnect=false,ssl=true,password=<password>");
                }
                return _connection;
            }
        }
        static void Main(string[] args)
        {            
            IDatabase cache = Connection.GetDatabase();
            cache.StringSet("foo", "bar");
    
            string foo = cache.StringGet("foo");
    
            Console.WriteLine(foo);
            Console.ReadLine();
        }
    }
    
[/code]

Web APIのコントローラーからの呼び出しには、何か考慮しなければいけない点があるのでしょうか？  
よろしくお願いします。

環境  
Windows 8.1 Pro  
Visual Studio Professional 2015 Version 14.0.24720.00 Update 1  
.NET Framework 4.6.1


CC BY-SA 3.0
2016-01-06T11:46:56.483
20668
2018-10-30T09:00:48.300
10952
question
c# visual-studio asp.net azure redis
ASP.NET Web APIからAzure Redis Cacheに接続できない


> 上記のコードだと、 IDatabase cache = Connection.GetDatabase();  
>  以降にブレークポイントが止まらず、 return Ok(new { foo = foo });  
>  まで飛んでしまい、Exceptionも発生していません。

Relase ビルドではなく、Debug ビルドをデバッグ実行してますか？

また、確認されてるとは思いますが、微妙に接続文字列が間違っていたりはしないでしょうか？


CC BY-SA 3.0
2017-04-08T08:03:56.117
33863
2017-04-08T08:03:56.117
3033
20668
answer