我正在尝试使用Azure Webjobs,我理解它的工作方式,但我不明白为什么我需要使用两个连接字符串,一个是用于保存消息的队列但是
为什么还有一个名为"AzureWebJobsDashboard"的?
它的目的是什么?
我从哪里得到这个连接字符串?
目前我在同一个解决方案中有一个Web应用程序和一个Webjob,我只在本地进行实验(没有发布任何内容),我在云中找到的一件事是保存队列的存储帐户.
我甚至尝试在两个地方放置相同的连接字符串(AzureWebJobsDashboard,AzureWebJobsStorage),但抛出异常:"使用此触发器时无法绑定参数'log'."
谢谢.
我需要以某种方式上传文件并在VM上访问它们,我该怎么做?
具体来说,如何从VM中访问我作为blob上传的文件?
我尝试将我作为blob上传的文件访问Azure虚拟机,但我无法在VM上找到它.
我可以简单地将blob存储作为驱动器安装在我的VM上吗?
我试图避免从实际的blob存储中获取它并将其下载到VM的往返时间.
blob azure azure-storage azure-storage-blobs azure-virtual-machine
我有一个Web应用程序(ASP.NET MVC4),我需要启用HTTPS/SSL.
我检查了很多关于如何做的文章和教程,但我没有得到一件事:
有些地方只讨论IIS的配置:
http://weblogs.asp.net/scottgu/tip-trick-enabling-ssl-on-iis7-using-self-signed-certificates
有些地方只讨论代码(在应用程序内):
http://tech.trailmax.info/2014/02/implemnting-https-everywhere-in-asp-net-mvc-application/
所以我的问题是我需要如何处理这个话题?
我想使用临时自签名证书启用HTTPS,然后购买真实证书,我需要做什么?配置IIS?配置我的代码?都?
如果有人可以指导我完成这件事.
谢谢
我想弄清楚如何监听队列中的事件(尤其是入队事件)。
假设我有一个控制台应用程序和一个服务总线队列/主题,我如何连接到队列并等待新消息?
我试图在没有While(true)持续轮询的情况下实现这一点,我试图以一种非常听话的方式来做更多的事情,比如保持连接到队列的套接字。
我不想使用轮询的原因是我知道它会用请求淹没服务器,我需要一个可以在大负载下工作的解决方案。
谢谢你。
为了简单起见,我给出了非常基本的示例,但我的实际情况要复杂一些:
我有使用服务总线队列将需要处理的消息发送到工作角色的 Web API。
我需要以某种方式知道 Worker 何时处理了消息。我希望 Worker 向队列发送一条消息,提醒 Web API 已处理该消息,但现在我需要让 Web API“坐下”并等待 Worker 的回复,这引出了我的问题:
如何在不进行轮询的情况下不断地收听队列(因为有很多实例会进行池化,并且会创建很多可能最好避免的请求。
servicebus azure azure-queues azureservicebus azure-servicebus-queues
我试图了解是否有办法在没有IIS的本地计算机(浏览器)上运行Web应用程序.
我的主要目标是将我的Web应用程序(即在互联网上)转换为在本地计算机上运行的软件,而无需使用互联网和IIS.
我的想法是在我的同事之间分发我的webapp,而不是强迫他们在线工作而不需要互联网连接.
我有一个 MVC Web应用程序有3页和服务器端的几个方法.
应用程序的想法是从我在我的Web应用程序的一个页面上实现的表单中获取属性,并将客户端上的属性转换为JSON并将其发送到服务器,服务器将根据JSON对象,让客户端下载生成的XML文件.
它的流程:
1.客户填写我网站上的表格.
2.表单在客户端成为JSON对象.
3.存储表单属性(由客户端填充)的JSON对象被发送到服务器.
4.服务器从中获取JSON对象并生成XML文档.
5.客户端下载生成的XML文件.
很简单的Web应用程序.
我知道我可以通过点击它来运行HTML页面,页面将显示在浏览器上但我需要服务器端才能执行操作.
所以我的问题是:如何让我的网络应用程序在没有互联网的情况下运行?
有了约束:
我读了几篇关于OWIN,SingalR,Cassini和WCF的文章,但它们都很模糊......
如果有人可以为我提供指导,那将非常有帮助.
非常感谢.
我需要在blob(文件的本地路径)上存储信息,并能够覆盖该blob但保留信息.
我尝试了元数据方法,它正是我所寻找的,但是一旦我覆盖了blob,元数据也会被覆盖.
更新现有块blob会覆盖blob上的所有现有元数据
MSDN声明有部分更新选项:
要执行块blob内容的部分更新,请使用Put Block List操作.
问题是如何设置部分更新以仅更新blob的数据而不更新元数据?
谢谢.
我有一个云服务,从客户端获取文件并将文件返回给客户端.
所以实际发生的是:
客户端向服务发送请求以生成访问以在blob存储中存储一个blob,服务返回给他URL + SAS,我还创建了一个带有一个字符的实际blob,以便在blob上保存元数据.
客户端获取URL + SAS并使用Web客户端库开始上载文件.
一旦客户端上传了文件,他就会向服务器发送请求,并提供与他提供的相同的URL(并且可以告诉服务,这是我的文件做你的事情)
服务器将操作该文件并覆盖相同的blob并返回整个操作的日志.
客户端可以读取日志,并可以从同一URL下载"新"文件.
你可能会注意到问题是我让客户端覆盖我的blob,他(客户端)要求我上传文件,我给他返回URL + SAS但是当我生成SAS令牌时我还创建了一个blob来保存直到用户上传到实际数据的元数据,所以我不能要求用户首先获取元数据然后上传(我需要上传将来自Webclient库,没有任何特殊的依赖,如Azure API).
所以我的问题答案的底线是"不,没有办法覆盖blob并保存元数据",但Gaurav Mantri对我的情况有一个很好的解决方法.
我正在使用MVC 4和身份2.0,我在我的网站(开箱即用功能)"记住我",我想禁用此选项,并在我的网站中有这两个选项之一:
1.用户每次使用我的网站时都需要登录(输入用户名和密码).
2.user每次都需要登录,但网站会记住他30分钟并且不会强迫他在该时间段内登录(在我们的情况下为30分钟).
我怎样才能完成这3件事?
禁用我只是注释登录页面中的复选框我认为它会做的伎俩:)
编辑:
当我设置这个:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Logon/LogOn"),
ExpireTimeSpan = TimeSpan.FromMinutes(30),
});
Run Code Online (Sandbox Code Playgroud)
我是否需要从那里评论/删除此代码:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
Run Code Online (Sandbox Code Playgroud) 我试图找出从Web-API使用服务总线的最佳实践是什么。
我已经读到重新创建QueueClient,SubscriptionClient等对象是错误的方法,因此我需要重用工厂和客户端。
服务总线客户端对象(例如Microsoft.ServiceBus.Messaging.QueueClient或Microsoft.ServiceBus.Messaging.MessageSender)是通过MessagingFactory对象创建的,该对象还提供内部连接管理。发送消息后,请勿关闭消息传递工厂或将队列,主题和订阅客户端关闭,然后在发送下一条消息时重新创建它们。关闭消息传递工厂会删除与服务总线服务的连接,并且在重新创建工厂时会建立新的连接。建立连接是一项昂贵的操作,可以通过将同一工厂和客户端对象重新用于多个操作来避免。
我需要实现一个特殊的类,该类将保持与服务总线的连接,我在考虑一个Singleton类,该类将保留特定的操作(像这样EnqueueJobToArchiveQueue(Job job)的函数,构造函数将初始化QueueClient,MessageFactory等,然后由“特定的操作功能”。
我的问题是我需要关闭对象(QueueClient.Close()),什么时候需要关闭对象?
到目前为止,这是我的课程:
public class ServiceBusHelper
{
private static readonly ServiceBusHelper instance = new ServiceBusHelper();
private static MessagingFactory msgFactory;
private static NamespaceManager namespaceManager;
private const string jobQueueName = "job";
private const string responseTopicName = "jobResult";
private const string archiveQueueName = "jobArchive";
private static QueueClient archiveQueue;
private static QueueClient jobQueue;
private static TopicClient responseTopic;
private ServiceBusHelper()
{
}
static ServiceBusHelper()
{
msgFactory = MessagingFactory.CreateFromConnectionString(ConfigurationManager.AppSettings["ServiceBusCS"]);
namespaceManager = NamespaceManager.CreateFromConnectionString(ConfigurationManager.AppSettings["ServiceBusCS"]);
if (!namespaceManager.QueueExists(jobQueueName))
{
namespaceManager.CreateQueue(jobQueueName);
} …Run Code Online (Sandbox Code Playgroud) 我有非常基本的架构:
Web API 队列中的消息在 Queue 和 Worker(后台处理服务)中出队并处理消息。
问题是 Web API 不知道 Worker 何时处理了消息。
Worker 是否可以提醒队列消息已成功处理,并且队列将“处理完成消息”事件发送回 Web API?
我正在考虑的一种解决方案:
Web API 对消息进行排队后,它每隔几秒检查一次消息状态:
如果消息状态为“Peck-Lock” -消息仍在处理中。
如果在队列中找不到消息- 消息已被处理(成功或不成功并不重要)。
但是微软没有现成的解决方案吗?
我有MVC应用程序,我想保留活动日志中有关我网站中的活动,例如,如果用户登录成功,则向我的数据库插入描述此活动的行(名称为X登录的用户)在时间Y与IP的Z.
问题是我需要等待结果,我不关心结果,我不希望结果阻止我,我想将它发送给函数(DB函数中的更新Activity表) )并继续.
我会自下而上开始:
这是我的数据查询功能:
public static void InsertLogRecord(LogRecord lg)
{
try
{
string query = "INSERT INTO ActivityLog VALUES('" + lg.Id + "','" + lg.Time + "','" + lg.Executor + "','" + lg.ExecutedOn + "','" + lg.Action + "','" + lg.StartState + "','" + lg.EndState + "','" + lg.IP + "')";
AdoHelper.ExecuteNonQuery(query);
}
catch(Exception ex)
{
throw ex;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的Controller函数(调用前面的"InsertLogRecord"函数)
public void UpdateLog(string exeOn, string action, string sState, string eState)
{
LogRecord lg = new LogRecord(Guid.NewGuid().ToString(), DateTime.Now, User.Identity.Name, …Run Code Online (Sandbox Code Playgroud) 我有一个MVC Web应用程序(.NET),我不时需要升级Azure上的部署版本,问题是我有客户正在使用Web应用程序而我无法将其删除并使其不可用.
有一种方法可以部署我的Web应用程序的新版本并且仍然可以一直运行吗?(在部署过程中)
我能想到它的一种方法是将Web-App部署到我当前部署以外的某个地方,然后在我的外部域上"播放"DNS记录.
azure ×7
asp.net-mvc ×3
c# ×3
asp.net ×2
azure-queues ×2
blob ×2
servicebus ×2
.net ×1
async-await ×1
asynchronous ×1
https ×1
iis ×1
metadata ×1
owin ×1
signalr ×1
ssl ×1
wcf ×1