i have a ClickOnce application (online only) which is deployed on a network share. People can run the application by creating a shortcut to i:\ApplicationDirectory\ApplicationName.application
where i is the letter of the drive of the networkshare.
I want to start the application over HTTP. For this, I need the .Application file to be accessible through my webserver. However I am unable to select the ApplicationDirectory as a virtual directory for IIS. I tried copying the .Application file to a virtual IIS path, but this makes the deployment corrupt (i also updated application_files reference in the .Application file). Is there a(nother) way to start a ClickOnce application, deployed on a network share, over HTTP?
First find your ClickonceKey.pfx, in other words the key used to sign assemblies.
Then find mage.exe, the utility for signing manifests that's part of the .NET Framework SDK. For VS2005, it can be found at %ProgramFiles%\Microsoft Visual Studio 8\SDK\v2.0\Bin.
Then create a batch file to execute mage.exe.
Then copy the contents of the network share deployment folder to a new virtual directory on the web server.
Finally, run the batch file.
The batch file should look something like this:
mage.exe
-update >>path to your application manifest in the virtual directory<<
-providerurl >>location of application manifest virtual directory<<
-certfile Clickoncekey.pfx -password >>your password<<
Related
I have an ASP.NET Web Application (.NET Framework) that was created in the default location of C:\Users\mcarr\source\repos\ It loads fine from this location.
I was asked by my manager to keep projects out on a mapped network drive. So I created the source and repos folders on the mapped drive and copied the entire project to the new location.
It won't load from here. I get an error message stating that the creation of the virtual directory https://localhost:XXXXX/ failed. Cannot read configuration file. You will need to manually create this virtual directory in IIS before you can open this project.
I have researched with no luck...
Cannot read configuration file due to insufficient permissions
Visual Studio - Cannot Read Configuration File
I did try the suggestion of removing the URL from IISUrl in the project file.
Thinking that it may be some other configuration file, I even created another new project in VS2019 and changed the location to the repos directory on the mapped drive from the Configure your new project window of VS2019, and saved the newly created project directly there. Even this new test project, created in place, gives the same error message.
Any ideas?
Full environmental disclosure:
VisualStudio 2019 Enterprise with Jetbrains Resharper installed.
64-bit Windows 10 Version 21H2 Build 19044.1826
Open Enterprise Server (OES) network. (Used to be known as Novell) (I suspect this is the root of the problem)
Turns out that OES and Windows don't play well together. I have several mapped drives available for me to store projects on. Some are on OES servers and others are on Windows servers. A help desk guy told me that when copying files from an OES drive to a Windows box he has to put them in C:\temp first, then move them from the temp folder to the desired folder. Windows doesn't trust files from an OES share.
So I moved my project to a mapped drive on a Windows box and the IIS Express error is gone.
I'm a programmer, not a network admin, and this was new to me.
But, problem solved.
I've completed a Java project with Hsqldb, the application works fine on my local machine, this is intended to be used as a standalone desktop application on the Windows platform. Please could you suggest any references/documentation on how to go about the deployment processes. Thanks in advance.
For deploying an embedded HSQLDB database, the only thing that can be different on the target is the location of the database files.
You define the directory where files are stored and it should be a writable directory. In this case, define the path and use it as an absolute path (which includes the drive name if any) to connect to HSQLDB.
You can also define the database connection URL to contain the user home directory path. This allows storing the database is a subdirectory of the user's home directory. See http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html#dpc_variables_url
The root issue is that we have an ASP.Net application with a deep folder structure that we run within the Cassini web server and install on customer machines using a ClickOnce deployment. However, ClickOnce imposes limits on file path lengths which is starting to cause our deployment to fail. There are also a bunch of other issues with ClickOnce (e.g. handling of binaries in the web-app's bin folder) which we have solved via 'creative' means (i.e. hacky), as such we think a nice way to side step these ClickOnce issues is to deploy the ASP.NET app as a single zip archive. To Do that Cassini and ASP.NET would need to be able to the ZIP archive as a virtual file system.
One method might be to mount the zip archive in the file system (e.g. mapped to a new drive letter); The concern there is that some customer environments will likely prevent the application from mounting a new drive.
Ideally then we're looking for some means of representing a zip as a file system that we can point Cassini and ASP.NET to, but that isn't being done by the OS.
=== Update ===
Possible options:
Unzip to a temp folder and point to that folder.
MSDN article: Virtualizing Access to Content: Serving Your Web Site from a ZIP File
I created an empty Azure Cloud Service project, then added a web role there. The role project has a web.config file.
When I hit F5 the role is deployed in Compute emulator. I went into the folder where role binaries are deployed - there's no web.config file there.
What's happening? Is that because I didn't set "copy always" on web.config file? What web.config does my role use?
If your role is configured for Full IIS mode (for those unaware of the difference between Hosted Web Core and Full IIS, see this blog post), the compute emulator should deploy the web role to IIS where it can be viewed in IIS Manager. On my machine (I'm running Azure SDK 1.5), the deployed web role's physical path is my source code directory.
I think web.config is compiled into your assembly as content in your development environment, and is not directly accessible like in staging/prod. You don't need to use Copy Always, if its marked as Content its all you need. You can use Environment.CurrentDirectory to see your web root path.
Even though the preferred way of storing configuration in Windows Azure applications is in the ServiceConfiguration.cscfg file, there are still many cases when you may want to use a normal .NET config file - especially when configuring .NET system components or reusable frameworks. In particular whenever you use Windows Azure diagnostics you need to configure the DiagnosticMonitorTraceListener in a .NET config file.
When you create your web role project, Visual Studio creates a web.config file for your .NET configuration. While your web application can access this information, your RoleEntryPoint code cannot-because it's not running as a part of your web site. As mentioned earlier, it runs under a process called WaIISHost.exe, so it expects its configuration to be in a file called WaIISHost.exe.config. Therefore, if you create a file with this name in the your web project and set the "Copy to Output Directory" property to "Copy Always" you'll find that the RoleEntryPoint can read this happily. This is one of the only cases I can think of where you'll have two .NET configuration files in the same project!
All info is from Azure Team Blog and I have used this solution successfully- http://blogs.msdn.com/b/windowsazure/
I've never actually used IIS, and I'm pretty new to the whole ASP.net thing too.
Basically, I've created a RESTful service using a VS2010 ASP.net project.
I'm not sure how you get that ASP.net application (which runs great on Visual Studio) to run on an IIS server.
It's pretty easy with a Java dynamic web project and Tomcat, but here I'm not sure how to begin.
Do I simply deploy the binaries to a directory?
Thanks!
ther are some possibilities
the easy one
create under c:\inetpub\wwwroot\ a new directory for your app
in the iis manager, configure this directory (create an application, set the right .net version, ... ). than everything you need is to copy all your files into that directory and thats it.
but you can also create a msi file, if you don't have the direct access to the server.
hth
For best testing you application use IIS 7.5 express on you development machine and set this:
project->Properties->Web->Use Local IIS Web Server
After testing under local IIS you can deploy you project to real IIS by using Build->Publish 'Your project'
Simplest way is deploying to File System in some folder and copy its content to created site folder, associated with IIS Virtual directory. To create Sites and virtual directories, see this:
http://www.bloggingdeveloper.com/post/Creating-IIS7-sites-applications-and-virtual-directories-using-Internet-Information-Services-Manager.aspx
http://mvolo.com/blogs/serverside/archive/2007/07/12/Creating-IIS7-sites_2C00_-applications_2C00_-and-virtual-directories.aspx