Failed workflow operation
Hi
When I try to Publish or Save as Draft i get a Popup saying Failed workflow operation and the page changes doesn't get saved.
I'm having EN & Swedish as languages. I've checked no Workflow active.
/Keivan
... got the same issue.
Did you find a workaround ??
No, so this is my biggest problem, can't do anyting on the site.
/Keivan
I've worked all day long yesterday to try to find a workaround the "Invalid time zone standard name", and finnally I installed a brand new Windows Server 2008 R2 in english with SQLServer 2008 R2 and Sitefinity...
After long hours I got it to work... but immediately found that "Failed Workflow operation" whenever I try to save a page. Everything else seems to work but if it is impossible to save a page, them I'm definitly stuck...
I have to admit that these two poblem combined are making Sitenity 4.0 RC completely unusable for me...
This is frustrating.
By the Way, my Windows server is purely US english with no french at all...
**EDIT**
In fact, this Failed Workflow thing does NOT happen if Sitefinity is used from Visual Studio 2010. It happens ONLY if project is used under IIS 7
I'm having the same problem. I've installed the RC version on Windows2008 server and SQL2008. I can not create a new page. It always says:Failed workflow operation
Possible Solution
PROBLEM SOLVED
I noticed that the SF4 worked fine until I integrated my projects. So, it appears that the legacy references, from work that I had done in the past, to Telerik assemblies are the root of the problem. After removing the dlls from my legacy projects, my publishing worked fine.
Found the problem References
So, the logical thing to do was to go and check what was going on in those projects. I looked inside the dll and sure enough there were references to Telerik.OpenAccess from the past.
Removed the References from the Problem Project
Beware, I had a rough time removing these references. I went to my project settings and removed all telerik references from the project. I also deleted the files in the bin and recompiled.
Side Note
I remember in this particular project I was having trouble working with OpenAccess so I dumped it for LINQ to SQL. Therefore, those problem references (to Telerik.OpenAccess) weren't necessary. Most likely you will have to update the Telerik References in your project for this problem to go away. In my case, I just irradicated them.
Finally Removed The References
I had surely removed every trace of Telerik from the problem project. Still, I got the Failed Workflow Operation again. So, I opened up the dll from the project with Red Gate Reflector. That revealed that there was still a reference to Telerik.OpenAccess. Because, I couldn't seem to kick this problem, I created a new project and moved all the files into the new project, compiled and then...
SUCCESS!
I am now in business--fingers crossed--but it looks good so far.
Brilliant!
I hope that this will be usefull to the Telerik guy to understand and fix the problem for this week's build!
Not so Fast..
I'm pushing this topic "up".
Please you guys from telerik, would that be possible to include a fix for this issue in your release today, or as "soon as possible" ?
We know that your are doing your best, thanks for that.
Any response from Telerik?
I have the same problem!
Uninstalled everything. No luck.
The new build is online.
Problem disapeared.
Solved.
Thanks guys.
Still happens for me :(
Hi Kristian,
Do you get the exception in the project you have previously created, and then upgraded to the new version? Or you get the error when you set up a new project with the latest release (build 910)
Greetings,
Radoslav Georgiev
the Telerik team
It is the previous project I have had when upgrading it gives me the exception. im upgrading it from beta 2 to 4.0.910.0
I am getting the same error. I created the project locally and deployed to an DiscountASP hosting environment. Everything is fine until I publish the page I get the error.
I have a new 2 page project that I deployed to the production server. There are no remnants from older projects. It works fine when put on my development box. The Firebug reported an empty guid being sent to the webservice. The details of this are located in the support call:
http://www.sitefinity.com/account/support-tickets/view-ticket.aspx?threadid=369010
The error went away for me after yesterday's update release
I just discovered the reference to fixing the problem in yesterday's release, so I'm downloading it now.
The new version did fix the problem.
Thanks,
Rich
Hi Rich,
Are we to understand that you installed the latest release (Sitefinity.4-0-941-0) and the "Failed Workflow Operation" went away ?
We have two installations on IIS that failed, and for some reason one of them suddenly worked on the previous release (still does on 4-0-941-0 after the upgrade) but the other fails. We are lost as to what we did that made it work - and we cant get the other site running without the error.
This is so time consuming and frustrating.
Jesper
Hello Jesper,
Unfortunately we are not able to reproduce the problem locally.
It is really interesting for us the environment on which the project runs. Can you please describe it in more details? You can check if the /Workflows directory exists. You can also try to upgrade to 962 build, which we released on Friday.
We found that if we insert a reference to the internal IP adress and the domain name, the problem dissapears.
On the server you have to edit the hosts file (Windows\system32\drivers\etc\hosts):
10.0.0.3 www.domaininquestion.com
Hope you all can use this.
To Telerik; is this a viable solution?
regards
Jesper
Hi Jesper,
Thank you for joining the conversation.
The problem is caused because Sitefinity is messaging the workflow internally, not from the same location from which you are trying to publish the item. We have been able to find a temporary workaround the issue which can be used until we resolve the problem. The workaround includes referencing the the host header in the hosts file:
127.0.0.1 domainname.com
And also adding the host header with this IP to the configuration of the site in IIS as in attached screen cast.
All the best,
Radoslav Georgiev
the Telerik team
Thanks Jesper and Radoslav, the workaround works for me!
Hello jaime,
Can you please send us the SdrConfigExample.e2e file from the root of your website, so that we can examine the svc call trace log?
Kind regards,
Radoslav Georgiev
the Telerik team
Hello,
I'm continuing this thread. Is there a permanent solution to this? I have downloaded the trial and installed the Standard Edition of Sitefinity (4.0.1098.0) on IIS7 (Windows Server 2008).
I am stuck at my first page... When trying to publish the page I get the following messagebox:
'There was no endpoint listening at /DefaultWorkflows/PagesApprovalWorkflow.xamlx">http://<mydomain>/DefaultWorkflows/PagesApprovalWorkflow.xamlx that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.'
Hello jwize,
Can you please let us know if you have tried the suggestion to edit the hosts file?
Kind regards,
Radoslav Georgiev
the Telerik team
Hi all,
We have introduced a new property (WorkflowBaseUrl) in Administration -> Settings -> Advanced -> System -> ServicePaths. You should set the base url to the domain name you are publicly viewing your website on, for example http://mydomain.com.
Best wishes,
Radoslav Georgiev
the Telerik team
Thanks Radoslav! The new property in the admin fixed it nicely. By the way, is this only happening in a special WCF / IIS binding scenario?
Hello bemara57,
This is happening when your website is added on a port different than the default one and you are using internal redirects to load the site. In this case Sitefinity is trying to message the workflow service internally and is not able to find the proper address for it.
All the best,
Radoslav Georgiev
the Telerik team
I've made the change to the settings and am still getting the same error. No workflows are defined. Should there be anything in the workflows directory? Mine is empty.
Update: I figured it out. The server's address is NATed and there is some DNS wierdness in our network I set the workflow path to the internal IP address and it all seems to be working.
I'm getting this same error when moving my site from my local pc to my Win 2008 IIS 7 server. I did everything mentioned but no luck.
I posted something before coming across this.
Any suggestions?
Hi NuToSitefinity,
Can you please let us know what you have configured for your WorkflowBaseUrl, and what is the address under which you are accessing your website?
Regards,
Radoslav Georgiev
the Telerik team
Hello All,
I had the same issue with Sitefinity 4.0 1098 build on my test site. The issue was fixed once I did the following 2 things
1. Changed the workflow url on the administration - > Settings - > advanced - > System - > ServicePaths - >
2. On my server I changed the host file to point to the value to the actual IP of the web site.
Once I did these 2 things the error went off and I was able to start publishing.
Hope this helps others
Thanks
Madhavan
This is our first site and we are also getting the
There was no endpoint listening at http://centraspecialtyhospital.com/Workflows/PagesApprovalWorkflow.xamlx that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details. error message.
We are version 4.0.962.0. When I check Administration > Settings > Advanced > System - there is not a ServicePaths option. There is ServiceModules.
Please advise what to look for - let me know if you need more information.
** Just tried updating the hosts file with the IP and host name of site - it fixed the problem above.
Saw where others had updated the web server hosts file with the IP and host name. This fixed the problem for us. The site content can be updated now.
Hello Brenda,
The issue could be caused by Filrewall as well - when the service call is blocked.
Kind regards,
Ivan Dimitrov
the Telerik team
Hi there,
I have started to deploy my first SiteFinity (4.0) site and have the same problem described here - alert box with "There was no endpoint listening at .co.uk/defaultworkflows/pagesApprovalWorkflow.xamlx">http://<myactualdomain>.co.uk/defaultworkflows/pagesApprovalWorkflow.xamlx that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details." when attempting to publish a page. I have followed this thread and added the "WorkflowBaseUrl" and also added the 127.0.0.1 in the Advanced Website Identification in IIS... and even tried the hosts file mod, but none of these have worked for me! Where should I be looking to resolve this? The actual files that it's looking for does not physically exist (I'm guessing it's URL re-writing), so I dont know where to look?
Hi Paul,
You alter the host and the request is not correct or there is something that blocks the the service call. These are the reasons for the error. We carefully debugged the code and there is no other case. There are several customers reported the same issue and it turned out that thy change the host or firewall blocks the request.
Kind regards,
Ivan Dimitrov
the Telerik team
What should we do in the case when the website is on the same ip with other websites (basically shares the ip address)
Hi ,
This should not be a problem if you do not alter the host somehow. Most of the shred hosting uses one IP with multiple domains. It is the same if you have one domain with dedicated IP and multiple subdomains.
Kind regards,
Ivan Dimitrov
the Telerik team
I am also encountering this problem. My scenario is this...
Sitefinity 4.1 website is deployed to production shared server at M6. The DNS has not been pointed yet as the plan was to populate the site with content in the production environment before 'launch'. We have changed the hosts file in our machine to be able to access the site. We can view the site perfectly and access the admin, but when we try to publish a page we get the 'There was no endpoint listening at http://domain.com/DefaultWorkflows/PagesApprovalWorkflow.xamlx that count accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.'
Obviously, in a shared hosting environment, we cannot access IIS to make any changes. What do we need to do to be able to do to publish pages and let the client finish content before we flip DNS, and after we flip the DNS live, will we still have the same problem?
**We also have already tried the baseworkflowurl workaround with no luck.
Thanks,
Brett
Hello Brett,
The error says that when the application tries to access PagesApprovalWorkflow.xamlx then this url does not exist on the server. The reason for this is some changes to the host, host header, network mapping.
There is a property WorkflowBaseUrl under Administration >> Settings >> Advanced >> System >> ServicePath that you can set to the real host so that the xaml will be found.
Most probably something at your end routes the url and changes the host which misleads Sitefinity. This is why setting the WorWorkflowBaseUrl is the option that should fix the issue if you use the proper host.
I prepared a code for you that you can use to test the host that is returned when you try to publish a page. I also attached a video with detailed steps that you should follow. You can test the code several times and observe what it returns and how it behaves.
1. Create and register a simple user control with a button
www.sitefinity.com/.../sitefinity-essentials-controls-adding-controls-to-the-toolbox.html
control template
<asp:Button runat="server" ID="Button1" Text="CallWorflowFunction" />
code behind
protected
void
Page_Load(
object
sender, EventArgs e)
// subscribes for click event of the button
this
.Button1.Click +=
new
EventHandler(Button1_Click);
void
Button1_Click(
object
sender, EventArgs e)
// call our method that is going to publish the Draft page
CallData();
private
Dictionary<
string
,
string
> contextBag;
private
string
GetHost()
// gets the host this is one of the important parts of the code
Uri url = SystemManager.CurrentHttpContext.Request.Url;
public
string
CallData()
// sets the page ID and other variables like workflow xaml
var pageID =
new
Guid(
"88b6e8ba-311d-439d-ba91-bc02c950bda1"
);
var wokflowUrl =
"~/DefaultWorkflows/PagesApprovalWorkflow.xamlx"
;
contextBag =
new
Dictionary<
string
,
string
>();
contextBag.Add(
"ContentType"
,
"Telerik.Sitefinity.Pages.Model.PageNode"
);
var baseUrl = Telerik.Sitefinity.Configuration.Config.Get<Telerik.Sitefinity.Services.SystemConfig>().ServicesPaths.WorkflowBaseUrl;
var serviceUrl = (String.IsNullOrEmpty(baseUrl) ?
this
.GetHost() : baseUrl) + VirtualPathUtility.ToAbsolute(wokflowUrl);
var endpointAddress =
new
System.ServiceModel.EndpointAddress(serviceUrl);
var binding =
new
System.ServiceModel.BasicHttpBinding(System.ServiceModel.BasicHttpSecurityMode.None) MaxReceivedMessageSize = 2147483647, MaxBufferSize = 2147483647 ;
binding.AllowCookies =
false
;
var client =
new
Telerik.Sitefinity.ContentWorkflows.ServiceClient(binding, endpointAddress);
using
(
new
System.ServiceModel.OperationContextScope(client.InnerChannel))
var httpContext = SystemManager.CurrentHttpContext;
var headers = httpContext.Request.Headers;
System.ServiceModel.Channels.HttpRequestMessageProperty request =
new
System.ServiceModel.Channels.HttpRequestMessageProperty();
string
cookieHeader =
string
.Empty;
for
(var i = 0; i < SystemManager.CurrentHttpContext.Response.Cookies.AllKeys.Count(); i++)
cookieHeader += httpContext.Response.Cookies[i].Name +
"="
+ httpContext.Response.Cookies[i].Value;
if
(i != (httpContext.Response.Cookies.AllKeys.Count() - 1))
cookieHeader +=
"; "
;
request.Headers[System.Net.HttpRequestHeader.Cookie] = cookieHeader;
request.Headers[System.Net.HttpRequestHeader.Referer] =
this
.GetHost();
foreach
(
string
headerKey
in
headers.Keys)
if
(headerKey.StartsWith(
"SF_"
, StringComparison.OrdinalIgnoreCase))
request.Headers.Add(headerKey, headers[headerKey]);
contextBag.Add(
"userHostAddress"
, HttpContext.Current.Request.UserHostAddress);
System.ServiceModel.OperationContext.Current.OutgoingMessageProperties[System.ServiceModel.Channels.HttpRequestMessageProperty.Name] = request;
var workflowDefinitionId = Guid.Empty;
return
client.SendMessage(
"Publish"
,
false
, workflowDefinitionId, pageID,
null
, contextBag);
Ivan-
Thank you for all your hard work. Unfortunately, I am unable to add the control to a page either. It definitely appears to be a path change issue. I have the path in the toolbox exactly as it should be. I also get a 404 when trying to browse directly to the xaml page, and I used the workflowbaseurl setting that you talked about as well...and nothing works. Please keep in mind that this site is in a shared hosting environment without the DNS for the domain pointed to it. I am accessing it by changing the hosts file in my machine to point to the IP of the server. I can provide you with a link to the site if you like. The front end works perfectly, and you can log in to the Sitefinity admin and access different areas of the admin. You just cannot do anything as far as edits or publishing.
The site is hosted at M6 which is a Sitefinity hosting partner.
Thanks for any help as I am completely stuck at the moment and have no way to let the client access the site to add/edit content before the site goes live.
Brett
Hi Brett,
If you move the website to a local server and run it form IIS and our Project Manager are there any issues? The only reason for this message is changing in the main host, so the xaml could not be found.
Kind regards,
Ivan Dimitrov
the Telerik team
You got it. I have a copy of the site local, and it works perfectly.Development has just progressed to a point that the client would like to finish off content before launch (repointing DNS), and now I'm in this pickle.
I now have the same issue. The site works on development machine and buildserver, but does not work on our live staging server.
Okay, issue turned out to be UrlScan.ini again, needed to allow the PUT verb.
Reference to this post: http://www.sitefinity.com/devnet/forums/sitefinity-4-x/bugs-issues/server-error-404---file-or-directory-not-found.aspx
Hi guys,
Apparently in some cases this is caused by Database size limitations that are reached. I think this would hardly happen on a dedicated server or more powerful hosting solutions, but those with shared hosting might want to take a look into that.
Kind regards,
Grisha 'Greg' Karanikolov
the Telerik team
Database size limitation is definitely not the issue in this case. M6 is the hosting company, which by the way is a Sitefinity hosting partner, and they told me they cannot allow the changes mentioned in the fix above and that we are basically just out of luck and they could offer nothing to help solve the problem. So, that leads me back to square one and not a clue what to do...with a client breathing down my neck that wants to put content into their new site so it can be launched to replace their old site.
I'm wide open to any suggestions, and I need them sooner rather than later.
i has the same problem on my system.
I found my IIS is schizophrenic.
What i mean is that on my IIS is more than one site with the same IP-adress.
To solve this i set in my hosts file on server a entry with loopbackadapter IP to my sitefinityproject adress.
now it works.
best regards
reto
Thanks Reto, but I can't edit the hosts file on the server because the site is hosted on a shared hosting server. The site lives at M6, which is a Sitefinity hosting partner by the way...and they have responded to my support request and said there is nothing they can do. Makes me question the partnership between them and Sitefinity somewhat if neither can offer a solution to this issue.
Hi Brett,
The solution request not changed the host header and set the correct url in the configurations - WorkflowBaseUrl. Basically you are casing "not found exception" of the xaml.
Best wishes,
Ivan Dimitrov
the Telerik team
With this issue going on for 9 months, wouldn't it be easier to put a fix in so this won't be an issue for existing users or new users?
Ivan-
Thanks for your response, but I'm not sure what you mean. I have tried everything in this thread that I could...including changing the WorkflowBaseURL in the config. Anything that involves settings on the server I cannot access due to the site being staged on a shared server (Sitefinity Hosting Partner).
I'll run through this one more time.
The site is built on Sitefinity 4.1 and when I run the site locally, it runs just fine and I am able to do all edits, additions, publishes, etc. The site has been uploaded to a shared host for staging because it will live there once the DNS for the domain name is pointed to it. We have not currently done this because the client currently has an old site and do not want to flip to the new site until the content is populated. To do this we have to change the host file in the local machine (not the server) to be able to hit the site on the shared server via the domain (with no www). This allows us to see the staged site from the local machine, browse every page, log in to the admin and view the pages in the admin. Any page creation, adding of widgets or custom user controls to pages or publishing of pages does not work and gives the "There was no endpoint listening at http:\\website\Workflows\PagesApprovalWorkflow.xamlx that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details." error.
This error does not occur when I run the site from the project manager and visual studio locally...only on the stage. I have changed the WorkflowBaseURL in the admin to the same entry that I am using in the local hosts file to view the staged site and it does not help. I do not have access to the server host file or any of the config. I opened a support ticket with M6 and asked them to make some of the tweaks that I saw in this thread on the server side, but they said that they could not due to security issues they would introduce in a shared hosting environment, and would not be able to help me.
Soooo, I am at a loss. All I am trying to do is give my clients the ability to administer their content in the staged environment to get their site ready for launch. This should not be this hard and was not difficult with Sitefinity 3.7, as we did it dozens of times, and in a shared hosting environment too. This is becoming a major issue in using Sitefinity going forward if we cannot find a way to accomplish what seems like should be a fairly simple thing.
We are at a complete standstill in this project with a client that is rapidly becoming unhappy with the situation. They don't want to have to compile their content into emails and send to me, they want to enter it themselves and thus learn to use Sitefinity properly while they do. If we are forced to point the DNS to their site and basically 'launch' an unfinished site just so the content can be administered by them....they are going to be profoundly unhappy.
Any assistance is appreciated, but pressue from the client is making me increasingly frustrated with the lack of a solution to this issue.
Thanks,
Brett,
Were you able to resolve this issue? I have having the same issue with SP3 (4.1.1574.0). Very frustrating.
Solomon
Crazy, M6 is listed as a Sitefinity hosting partner. They should at least be able to host a SF4 site.
Solomon
Bump!
Have anyone any solution on this??
/Thanks
For me, this was a routing issue. The problem is the system needs a URL to connect to the WCF services (even though the WCF services are served from the same site). My host had a temporary URL for me (i.e. mydomain.hostdomain.com) that was doing some routing on the back end to get me to my IIS site. The WCF service default URL is determined at runtime (i.e. mydomain.hostdomain.com/services/blahblahblah.svc) and was not able to access the service because of the routing (a common problem in WCF). When I switched to a proper domain name (i.e. mydomain.com), everything worked because the routing was not happening anymore.
That was my problem anyway. If your environment looks anything like that, I would bet that is your problem.
You may be able to get around this by setting the service URL in the Settings module to something like an IP or non-routed URL - I did not try this.
Solomon
I'm digging a little bit more in this and it's seems the server will lookup to another dns. I think that is the problem and I think you have right. It is a routing problem...
/Thanks
I've finally fixed this although I'm not sure how. In case my experience is of value to other I'll list our configuration and what we changed to get it working. It's important to note that the same project files and database worked fine locally on my development machine.
Windows Server 2008 R2
IIS 7.5
Website running under a sub domain like http://mysub.mydomain.com
Domain points at external IP and firewall routes external IP to internal IP
Host header in IIS for sub domain and internal IP
What we did to get it working
Changed Host file to "interal IP mydomain.com"
Changed WorkflowBaseURL to http://mysub.mydomain.com
Added a loopback rule in the firewall to allow internal Sitefinity requests to use the public address. Here's more info on this. http://www.firewalls.com/videos/video/sonicwall-loopback-nat-policy.html
Deleted Temp Internet Files and cookies to be thorough
A few IIS restarts in the middle of all that
Hey guys,
Clarifying question:
Is there a physical file associated with this call?
Since our problem server was inside our firewall, we identified the cause of our issue to be a problematic internal DNS server. The HOSTS file work around worked fine. But the real solution was to ensure that our DNS server was back up and running.
That said, I'm still curious about my clarifying question above.
Hi
I also having same issue publishing a page and one of the solutions I saw after google around is to add value "https://mydomain" to the WorkflowBaseUrl. However, I can save changes; I got a message "Access to the path ...\Configuration\SystemConfig.config" is denied." Anyone know how to by pass this issue? I'm using Sitefinity 4.2
Thank you.
@Anh
Means that file is either ReadOnly, or your app pool doesn't have write access to the App_Data folder on your site.
Hi Steve,
Thanks for reply. I've checked, the SystemConfig.config is not Read-only however it Read-only for App_Data\Sitefinity\Configuration folders. Could you please let me know how to config the app pool to have write access to app_data?
Thanks.
Add "iis apppool\<name>" as a user on the folder permissions, then give him write