我正在尝试使用Azure Connect。我希望能够从一个辅助角色将一些文件推送到一个内部部署服务器。我还想打印一些网络打印机进行一些批处理作业。根据我的阅读,我认为应该是可能的。我一直在关注this tutuorial的基础知识,但是会喜欢指向这两个用例特定的任何教程或帖子的指针。
如果有人知道Azure Connect是否以及何时不在预览/ CTP并且公开可用,我也很好奇。
由于
更新 这是我用作POC的代码,用于生成虚拟文件并将其从MVC Web角色复制到我的内部部署。我得到了一个错误的路径错误(错误:System.IO.IOException:未找到网络路径。)我通过不使用我的本地框的完全限定名称修复,但短名称而不是添加描述in this post的防火墙规则。
public class TestController : Controller
{
public ActionResult SaveFile()
{
return View();
}
[DllImport("advapi32.dll", SetLastError = true)]
public static extern bool LogonUser(
string lpszUsername,
string lpszDomain,
string lpszPassword,
int dwLogonType,
int dwLogonProvider,
out IntPtr phToken
);
[HttpPost]
public ActionResult SaveFile(FormCollection collection)
{
try
{
string nowString = DateTime.UtcNow.ToString("yyyyMMdd HHmmss");
string path = @"\\fullyqualifiedservername\e$\FileShare\";
path = Path.Combine(path, string.Format("{0}.txt", nowString));
IntPtr userHandle = IntPtr.Zero;
bool loggedOn = LogonUser("myusername", "mydomain", "mypassword", 9, 0, out userHandle);
if (loggedOn)
{
WindowsImpersonationContext context = WindowsIdentity.Impersonate(userHandle);
System.IO.FileInfo f = new FileInfo(path);
using (FileStream fs = f.OpenWrite())
{
byte[] b = System.Text.Encoding.Unicode.GetBytes(string.Format("Fake content written at {0}", nowString));
fs.Write(b, 0, b.Length);
}
context.Undo();
}
return RedirectToAction("SaveFile");
}
catch(Exception ex)
{
ViewBag.Error = ex.ToString();
return View();
}
}
}
答案 0 :(得分:2)
Windows Azure Connect适合您的情况。然而,它已经预览了很长一段时间(如果我没记错的话,接近2年)。没有人可以告诉您是否/何时它将成为GA(一般可用性)。
您当然可以尝试和构建PoC(概念验证)。它相当容易使用。你真的不需要你所引用的文章。目前在Windows Azure Connect中没有更多内容。
但我不会将它用于制作,因为它是预览版,并且没有SLA,服务可能会在任何给定的时间点停止。
Windows Azure虚拟网络是另一种具有更加美好未来的替代方案。但是,它需要一个支持IPSEC协议的真实硬件路由器/防火墙设备。支持最便宜的设备是CISCO ASA 5505.此外,您还需要提供(在我们这边管理)全功能DNS服务器。您可以从以下文章中了解有关Windows Azure VN的更多信息:Create a Virtual Network和Create Virtual Network for Cross Premises Connectivity。