There is a WCF service which is running under IIS. This service accesses the files in its folder, it accesses a SQL Server database and it writes messages to the EventLog.
The deployment platform is Windows Server 2008 in some datacenter. I developed the service, but I'm really still a beginner.
The deployment will causes the creation of a new Windows user account and, possibly, a role that is assigned to that user. This is needed to start the service from a separate account with strictly defined rights (as I understand, this approach is recommended, but not to start the service from NT Service account).
Obviously, the deployment needs to run scripts to create database, tables, scheduling of tasks.
What tools could you advice to accomplish such a deployment? Maybe I can use the standard Setup Project? Or some third-party tools such as WiX Toolset? Should I use PowerShell to create windows user account and role?
There is also a question: should I pull the prerequisites, such as .NET framework installer, SQL Server installer?
You can rely on Windows installer using tools like WIX, InstallShield or Advanced Installer. WIX is the only free one albeit it has a higher learner curve. There are other free windows installation software solutions available as well such as NSIS. You can also write your own scripts such as in Powershell to create the IIS virtual directory, application pool and connect to the RDBMS to create the schema. You'll probably also would like to have an undeployment solution so you can uninstall it and upgrade it in the future. The Windows installer based tools almost gives you uninstall for free because it maintains a database of everything that was done during installation sans the custom actions you write such as the database schema setup.
For the user configuration part, some of these tools such as Advanced Installer can create new user accounts. However to define user rights assignment you might have to rely on a custom script using ntrights.exe from the Windows resource kit.
As of my knowledge there is no automated deployment tool available for WCF because its require lots of manual configuration.
But you can try Octopus for .NET applications
http://www.paulstovell.com/octopus/intro
Related
I have a question regarding the purpose of some service in sql. What does the process, the purpose of them.
OracleSchedulerXE
OracleORADB19Home1MTSRecoveryService
OracleOraDB19home1TNSListner
OracleRemExecServiceV2
OracleServiceXE
OracleVSSWriter
I tried to find something about OracleSchedurXE but I did nt find anithing.
Thank you.
If I Google any of the service names, I get back several pages that go into detail about what they do.
OracleSchedulerXE is used by Oracle for the dbms_scheduler package that lets you schedule jobs to run inside the database.
OracleORADB19Home1MTSRecoveryService is used for interacting with the Microsoft Transaction Server. Most commonly, that is used to allow applications to manage distributed transactions that involve Oracle and other Windows services.
OracleOraDB19home1TNSListner is used for the TNS listener.
That's the process that allows users to connect to the database from remote machines.
OracleRemExecServiceV2 is a service used by the Oracle Universal Installer during installation that will be removed once you reboot after a successful install.
OracleServiceXE is the service that actually runs the Oracle database
OracleVSSWriter is a service that interacts with the Windows Volume Shadow Copy service to ensure that backups see files in a consistent state.
I am developing desktop app using wpf mvvm,however I am confused as to how should I proceed with developing standalone application using sqlite,sql server compact etc
If you need a database (really need a database), I suggest using Entity Framework using the code first approach. This can create a local database for the application w/o the need of a database server.
However, strongly consider if you could just use files in the file system. It is amazing how much you can load into memory and if you want this to run on client machine, you likely don't have so much data that you can't just load the data into memory.
SQL Server Compact requires a separate installation step with administrative credentials.
SQLite is a library that can be compiled directly into the application.
In the case of .NET, it is a part of the System.Data.SQLite package, so it is automatically available when your application is shipped with this package (see SQLite deployment for .net application).
I'm creating a VB-based application in Virtual Studio 2013, and up until now I've been testing the tables used for its operation in a local MDF file. Obviously, I need to find a better solution for deployment as this will need to be used by multiple users. I decided to go with a SharePoint list for ease of access and better local control. (We have SharePoint Server 2010 running)
When I try to add a SharePoint Connection in the Server Explorer, it tells me I don't have Foundation or Server installed. Checking our corp's software request tool, I didn't find either of those. There's a 'SharePoint Designer' option, and another that sounds promising is 'Microsoft SSIS SharePoint List Adapters with SharePoint'. I couldn't find any info online about whether those would fit the bill. Would either of those serve the purpose of standing in for Foundation or Server? If not, I'm sure I could find a way to request Foundation but I'm sure that would add quite a bit of delay while they vet it for business use.
Also, if I install the necessary software for development on MY machine, will those dependencies be included in the executable so my clients wouldn't have to install those SharePoint tools as well?
If you want to access and manipulate with your sharepoint list from your code, you can look at Sharepoint CSOM. It allows you to remotely connect and proceed CRUD operations with sharepoint list.
I had a engineer design our .net application back in 2009, my guess is that it was coded using visual studio, and all I have is the installer application. We have been using it on our 1 or 2 local client machines very well for the past few years, but now I want to move this front end to the cloud. Instead of installing it as an application on our windows 7 machines.
It is a very simple application used in our small warehouse that keeps track of cargo/shipments etc. It uses Sql Server 2008 Express as a backend which is stored locally.
I know how to get the database in the cloud, their are many options for that, using Amazon or Azure, but how do i get the local client application to the cloud?
I dont have access to the visual studio code, i just have the runtime executable file..
I am sure there is no way to do this, and many of SO users will say i need to re-write the front end.
I have tried to contact the developer and they hav since closed down. Is their anyway i can run this in the cloud?
I welcome all options and solutions!
Thanks.
I believe you have two options for hosting this application:
If you are able to configure the database connection string, you could host the database in the cloud, and distribute the application to your end users. However, you've already stated that you know how to move the database, so I assume this isn't an option.
The only alternative is to run the entire application on a cloud server, and send the user interface to a client using terminal services. This makes it appear as if the application is running locally on the user's computer, while it is actually running on the server.
For an off-the-shelf solution to achieve this, you could consider using Microsoft's RemoteApp Azure service. I'm sure there are other similar offerings available.
I'm trying to integrate WiX into my automated build solution using TFS 2010 running on Windows Server 2008 R2. Everything seemed very easy, and then I get this:
light.exe: Error executing ICE action 'ICE01'. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wix.sourceforge.net/faq.html#Error217 for details and how to solve this problem. The following string format was not expected by the external UI message logger: "The Windows Installer Service could not be accessed. This can occur if the Windows Installer is not correctly installed. Contact your support personnel for assistance.".
That's odd. But hey! They provided a link. That should help, right?
Error LGHT0217
In WiX v3, Light automatically runs validation-- Windows Installer Internal Consistency Evaluators (ICEs) --after every successful build. Validation is a great way to catch common authoring errors that can lead to service problems, which is why it’s now run by default. Unfortunately, there’s a common issue that occurs on Windows Vista and Windows Server 2008 that can cause ICEs to fail. For details on the cause and how to fix it, see Heath Stewart's Blog and Aaron Stebner's WebLog.
Not at all. These posts just describe a situation involving scripting engine registration, and the conditions they describe were not present. However, I came upon Re: (WiX-users) Why do I get ICE failures building from a serviceaccount? (2010-01-14) that seemed to indicate that if I used a domain account to run the Windows Installer service, it would work. It sounded like it was worth a shot.
"For whatever reason on Windows 2008 (I didn't test Vista, XP, 2003, 7, or
2008 R2) the MSI Service is only available from logins that either have
administrative access or are logins that are "interactive". Logins that are
from service accounts that to not have administrative privileges cannot
access the msi service and thus cannot run ICE tests."
However, when trying to start the Windows Installer service with my build service account:
Windows could not start the Windows Installer service on SKILLET-1. Error 1297: A privilege that the service requires to function properly does not exist in the service account configuration. You may use the Services Microsoft Management Console (MMC) snap-in (services.msc) and the Local Security Settings MMC snap-in (secpol.msc) to view the service configuration and the account configuration.
OK, Windows, so you're telling me that my build service account is missing some ambiguous permission that it needs to start up the service. Making it administrator should fix that right? Nope, that doesn't work either.
So I revert back to local system for the Windows Installer service account. This time I made the build service a local administrator, and lo, success! That's hardly a solution, though.
My next idea was to attempt to isolate the permission set that the build service would actually require to get this done. That would be a nice solution instead of having to add more accounts to the administrator set. Step 1: go into local security policy and add the build service account to all permissions currently given to Administrators. In theory, that should allow the build to succeed, and from there I could selectively remove permissions until I've isolated all the permissions that must be held in order for it to succeed.
Unfortunately, even with all the same permissions, the build will still fail unless the build service account is a member of local administrators. Why is this? What other things besides LSP have dependencies on the administrator group that I could have changed to bring my build service account to equivalence with administrators?
Current conclusion: the build service must be an administrator in order to avoid ICE validation errors.
Open questions:
Why didn't my permissions isolation idea work?
What is this mysterious Error 1297 being thrown when running Windows Installer Service as a domain user? There's almost no documentation I can find on this.
I too faced the same problem. After some struggling and googling I came to the solution that suppressing ICE validation in the WiX project would make the project compile.